我一直在尝试在cabal-install
没有安装 GNU 多精度包 (GMP) 的系统上安装 Haskell 平台并安装在用户空间中的 Linux 上。
我设法通过设置LB_LIBRARY_PATH
指向我安装 GMP 的 lib 目录来安装 GHC-6.12.1 和 GHCi 工作,但是在下一步cabal-install
开始工作时遇到了问题。它一直试图(静态)链接到 GMP。
这失败了,因为 GMP 没有安装在系统中并且ld
不知道在哪里可以找到库,并且没有环境变量(我知道)可以告诉 ld 在哪里可以找到用户安装的 GMP,并且(显然)无法告诉配置 Cabal 提供相关-L
标志。
经过多次徒劳的搜索和黑客尝试后,我想到了安装我自己的 shell 脚本的荒谬简单的想法,该脚本使用适当的标志ld
调用系统。ld
-L
这是 shell 脚本 101,当然:
#!/bin/sh
/usr/bin/ld -L$HOME/gnu/lib "$@"
随着这个脚本安装在我PATH
前面的目录中,/usr/bin
所有问题似乎都消失了。