>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 ..
然后,我会等待很长一段时间,让它完成链接。
真心的!
发布于 2011-08-05 15:16:07
很可能是链接器本身。众所周知,来自binutils的标准ld
速度很慢。如果您想加快速度(并在边缘生活一点),请尝试安装Gold linker。在Ubuntu (我假设是Debian)上,这将是:
sudo apt-get install binutils-gold
我已经在我的家庭系统上使用了一段时间了,还没有问题。
发布于 2013-04-19 21:24:06
这应该是一个注释,但我不能在注释中这样格式化代码:
我设法使用gold作为GHC使用的链接器,通过安装binutils-gold
(按照Michael Snoyman的回答中的建议),然后用以下脚本替换符号链接/usr/bin/ld
(使用chmod +x
使其可执行),从而绕过了标准的ghc- with -gold错误:
#!/usr/bin/env python2
import sys
import os
import subprocess
tofilter = [
"--hash-size",
"--reduce-memory-overheads",
]
filtered = [ a for a in sys.argv if not any(a.startswith(p) for p in tofilter) ]
filtered[0] = "/usr/bin/ld.gold"
subprocess.check_call(subprocess.list2cmdline(filtered))
请注意,尝试使用ghc -pgml /usr/bin/ld.gold
或ghc -pgml /usr/bin/ld.whateverElse
设置链接器是不够的,因为-pgml
的参数需要替换GCC,而不是LD。GHC调用了GCC,而后者又调用了/usr/bin/ld
;这就是上面的脚本工作的原因。
发布于 2011-08-08 20:33:10
默认情况下,GHC将创建一个独立库/可执行文件(静态链接)。
现在已经支持动态链接一段时间了,所以你可以试着打开它。有了更少的工作要做,链接器可能会更快。另一方面,您需要确保在执行时您所依赖的动态库是可用的(Linux上的LD_LIBRARY_PATH变量)。
https://stackoverflow.com/questions/6952396
复制相似问题