>cabal update
>cabal install cabal-install
.......
[43 of 44] Compiling Distribution.Client.Install ( Distribution/Client/Install.hs, dist/build/cabal/cabal-tmp/Distribution/Client/Install.o )
[44 of 44] Compiling Main ( Main.hs, dist/build/cabal/cabal-tmp/Main.o )
Linking dist/build/cabal/cabal ..
然后我会等待很长一段时间,它完成链接。
3条答案
按热度按时间czq61nw11#
很有可能是链接器本身的问题。binutils的标准
ld
速度很慢。如果你想加快速度(并在边缘生活一点),尝试安装Gold linker。在Ubuntu(我假设是Debian)上,这将是:我已经在我的家庭系统上使用了一段时间了,还没有问题。
ppcbkaq52#
这应该是一个注解,但我不能在注解中设置这样的代码格式:
我设法使用gold作为GHC使用的链接器,通过安装
binutils-gold
(如Michael Snoyman的答案中所建议的),然后用以下脚本替换符号链接/usr/bin/ld
(用chmod +x
使其可执行),解决了标准的ghc与gold错误,如/usr/bin/ld.gold: --hash-size=31: unknown option
:请注意,尝试使用
ghc -pgml /usr/bin/ld.gold
或ghc -pgml /usr/bin/ld.whateverElse
设置链接器是不够的,因为-pgml
的参数需要替换愚者,而不是LD。GHC调用愚者,愚者调用/usr/bin/ld
;这就是上面的脚本工作的原因。rvpgvaaj3#
默认情况下,GHC将创建一个独立的库/可执行文件(静态链接)。
动态链接已经被支持了一段时间,所以你可以试着打开它。由于要做的工作更少,链接器可能会更快。另一方面,你需要确保在执行时你所依赖的动态库是可用的(Linux上的LD_LIBRARY_PATH变量)。