chr*_*nan 8 haskell gmp ghc cabal haskell-platform
我一直在尝试安装Haskell平台,并cabal-install
在没有安装GNU Multi-Precision软件包(GMP)的系统上在用户空间的Linux上安装.
我设法安装了GHC-6.12.1并且GHCi通过设置LB_LIBRARY_PATH
指向我安装GMP的lib目录cabal-install
来工作,但是在下一步遇到问题,开始工作.它一直试图(静态地)链接到GMP.
这失败是因为GMP没有安装在系统中并且ld
没有找到库的位置,并且没有环境变量(我知道)可以告诉ld在哪里可以找到用户安装的GMP,以及(显然)没有办法告诉配置Cabal提供相关-L
标志.
经过多次徒劳无功的搜索和黑客攻击后,我找到了一个荒谬的简单想法,即安装我自己的ld
shell脚本,调用ld
具有相应-L
标志的系统.
这是shell脚本101,当然:
#!/bin/sh
/usr/bin/ld -L$HOME/gnu/lib "$@"
Run Code Online (Sandbox Code Playgroud)
有了这个脚本安装在我PATH
之前的目录中/usr/bin
所有的问题似乎已经消失了.
Dun*_*tts 10
基本上,你的ghc还没有工作.是的,它可以编译东西,但它不能链接程序,因为它需要将它们链接到gmp.
我们可以做的是编辑一些核心包,例如rts包,这样ghc将始终使用正确的-L
标志:
ghc-pkg describe rts > rts.pkg
vi rts.pkg # add the gmp dir to the `library-dirs` field
sudo ghc-pkg update rts.pkg
Run Code Online (Sandbox Code Playgroud)