题
我已经安装了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,并且能够解决错误。
不隶属于 StackOverflow