ghc无法找到我的cabal安装包
问题描述:
我已经安装了ghc 6.12.3,然后安装了Haskell平台。我试图编译一个测试程序:ghc无法找到我的cabal安装包
$ 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目录/绑定-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
正如所建议的另一个计算器的用户,我想:
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
将触发追逐依赖项(包括软件包)。
编辑:绑定包确实已经过时,请参阅the hackage page。这不是一个软件包管理问题,唯一可用的模块是Bindings.Deprecated
,即使它是一个空模块,您也可以完美地加载它。我相信相关部分已被分解为bindings-<module>
,所以如果你想要绑定功能,你应该看看那些包。
答
http://www.haskell.org/haskellwiki/Cabal-install
有一点是特别清楚,是该软件包会被默认安装在本地的阴谋,而命令
runhaskell Setup configure
runhaskell Setup build
runhaskell Setup install
默认安装全球。如果您全局安装软件包,则会忽略本地软件包。可以通过编辑配置文件来修改cabal-install的默认值。
我得到了与runhaskell
命令相同的错误。我在具有.cabal文件的目录中使用了cabal,并能够解决该错误。
ghc-list生成一个包含绑定的包列表。它看起来像软件包已过时 - 所以它没有被发现。添加-package参数没有帮助。我尝试了一些其他没有使用Bindings的例子,并且它们运行良好,所以我会着迷于其他一些问题! :) 谢谢你的帮助。 – nont 2011-01-09 21:52:00