我已经安装了GHC 6.12.3,然后安装了Haskell平台。我正在尝试编译测试程序:

$ ghc test.hs
test.hs:3:0:
    Failed to load interface for `Bindings':
      Use -v to see a list of the files searched for.

所以,自然,我确实

cabal install Bindings

它可以正常工作,然后将软件包放入〜/.cabal/lib/bindings-0.1.2中,问题是,当我再次使用GHC进行编译时,它仍然找不到我与Cabal安装的包装。以详细模式编译给:

ghc -v test.hs
Using binary package database: /home/ludflu/ghc/lib/ghc-6.12.3/package.conf.d/package.cache
Using binary package database: /home/ludflu/.ghc/x86_64-linux 6.12.3/package.conf.d/package.cache

正如另一位Stackoverflow用户所建议的那样,我尝试了:

ghc-pkg describe rts > rts.pkg
vi rts.pkg                      # add the /home/ludflu/.cabal/lib to `library-dirs` field
ghc-pkg update rts.pkg

但无济于事。如何将.cabal添加到包装目录列表中以搜索?谢谢!

有帮助吗?

解决方案

您可以检查安装哪些软件包 ghc-pkg list. 。可能是您需要将包装指定到 ghc-package <pkgname> 或者我相信添加 --make 将触发依赖关系(包括软件包)的追逐。

编辑: 绑定软件包确实已经过时了,请参见 黑客页面. 。这不是软件包管理问题,唯一可用的模块是 Bindings.Deprecated, ,即使它是一个空模块,您也可以完全加载。我相信相关部分已被分解为 bindings-<module>, ,因此,如果您想要绑定功能,则应查看这些软件包。

其他提示

http://www.haskell.org/haskellwiki/cabal-install

特别要注意的一件事是,这些软件包默认是由Cabal在本地安装的,而命令是

runhaskell Setup configure
runhaskell Setup build
runhaskell Setup install

默认情况下,全球安装。如果您在全球安装软件包,则将忽略本地软件包。可以通过编辑配置文件来修改Cabal-Astall的默认设置。

我遇到了同样的错误 runhaskell 命令。我使用了具有.Cabal文件的目录中的Cabal,并且能够解决错误。

许可以下: CC-BY-SA归因
不隶属于 StackOverflow
scroll top