ghc找不到我的cabal安装包

时间:2011-01-09 20:49:01

标签: haskell cabal

我已经安装了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编译时,它仍然找不到我安装的包与阴谋集团。 在详细模式下编译给出:

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添加到要搜索的包目录列表中? 谢谢!

2 个答案:

答案 0 :(得分:6)

您可以使用ghc-pkg list检查安装的软件包。您可能需要使用ghc将包指定为-package <pkgname>,或者我相信添加--make会触发追踪包,包括包。

编辑:绑定包确实已过时,请参阅the hackage page。这不是包管理问题,唯一可用的模块是Bindings.Deprecated,您完全可以加载它,即使它是一个空模块。我相信相关部分已分解为bindings-<module>,因此如果您需要绑定功能,则应该查看这些包。

答案 1 :(得分:2)

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

要特别注意的一件事是,默认情况下,cabal会在本地安装软件包,而命令

runhaskell Setup configure
runhaskell Setup build
runhaskell Setup install

默认情况下全局安装。如果全局安装包,则忽略本地包。可以通过编辑配置文件来修改cabal-install的默认值。

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