我正在尝试在Ubuntu 16.04.3 x64上构建precimonious。我为它分配了1GB内存。我的文件结构类似于
~
|--- llvm/
|--- precimonious/
其中llvm在版本3.0上,如https://github.com/corvette-berkeley/precimonious#requirement所述。然后我按照README上的步骤操作,但命令make
以
...
llvm[1]: Linking Debug Shared Library libLLVM-3.0.so
collect2: fatal error: ld terminated with signal 9 [Killed]
compilation terminated.
...
我在网上得到了一些答案,他们说这可能是因为没有足够的内存来执行链接。但内存使用情况就像
我的计算机上的gcc版本为gcc version 5.4.0 20160609 (Ubuntu 5.4.0-6ubuntu1~16.04.4)
,并通过apt-get install build-essential
安装。这是我刚刚在DigitalOcean btw上创建的新鲜水滴。任何帮助表示赞赏。
答案 0 :(得分:1)
有时,由于CPU过载,系统会杀死链接器。如果您的构建是并行的,请尝试使用-l
选项(make和ninja支持它)。 Looks与您的情况类似。
要减少系统负载,请构建llvm的发行版本。链接调试版本要昂贵得多。
llvm [1]:链接调试共享库libLLVM-3.0.so
答案 1 :(得分:0)
内存耗尽。内存测量的采样间隔不够小,无法覆盖OOM杀手的确切位置。
根据容器/ VM技术,您可以在构建之前设置vm.overcommit_memory=2
,这样就不会终止进程(但这样做实际上需要更多内存和交换空间才能完成构建) )。
答案 2 :(得分:0)
我遇到了这个问题,并通过以下方法解决了
SWAP
磁盘(与我一起使用8 GB)。27 GB
(LLVM 6.0.0)可用磁盘空间(在终端中用df -h
检查)。答案 3 :(得分:0)
您可以使用以下方法解决此问题:
cargo run --release --verbose --jobs 1