我正在尝试在OS X上安装byteable
软件包,但Cabal因错误ld: library not found for -lgmp
而失败。我确实安装了libgmp,但是在非标准位置,LOCATION=$HOME/homebrew/lib
。 (即$LOCATION/libgmp.dylib
存在)。
我尝试在我的Cabal .config文件和命令行调用(即extra-lib-dirs
)中使用cabal install --extra-lib-dirs="$LOCATION" byteable
选项,但我得到了相同的链接器错误。当我使用详细选项(--verbose=3
)时,我可以看到对clang的调用实际上 not 包含$LOCATION
选项中的-L
目录。
在软件包安装过程中,我需要做些什么才能让cabal搜索其他库目录?
答案 0 :(得分:4)
这可能不是一个很好的解决方案,但您可以在执行libgmp
时将LIBRARY_PATH
的位置添加到cabal install
环境变量。
在您的情况下,例如:
LIBRARY_PATH=$HOME/homebrew/lib:$LIBRARY_PATH cabal install <package>
或者,对于标准的Homebrew位置:
LIBRARY_PATH=/usr/local/lib:$LIBRARY_PATH cabal install <package>
不幸的是,虽然我可以找到关于gcc LIBRARY_PATH
的文档,但我找不到任何描述它用于clang的内容。但是,上面的解决方案Works For Me(TM)和我上午运行clang。
这似乎与优胜美地有所不同。我对优胜美地 Beta cabal install
没有问题,我跑了好几个月。但是,当我执行Yosemite的全新安装时,我遇到了您描述的相同问题,因为clang无法找到libgmp
。