我正在尝试在Ubuntu 16.04.3 x64上构建precimonious。我为它分配了1GB内存。我的文件结构看起来像
~
|--- llvm/
|--- precimonious/
在https://github.com/corvette-berkeley/precimonious#requirement中提到的llvm版本3.0。然后我按照自述文件中的步骤操作,但命令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上创建的新鲜水滴。任何帮助表示赞赏。
由于CPU过载,系统有时会杀死链接器。如果您的构建是并行的,请尝试使用-l
选项(make和ninja支持它)。 Looks与你的情况类似。
要减少系统负载,请构建llvm的发行版本。调试版本的链接要昂贵得多。
llvm [1]:链接调试共享库libLLVM-3.0.so
这是内存耗尽。内存测量的采样间隔不够小,它覆盖了OOM杀手的确切位置。
根据容器/ VM技术,您可以在构建之前设置vm.overcommit_memory=2
,以便不会杀死进程(但这样做实际上需要更多内存和交换空间来完成构建)。