为什么链接器终止于我?当我建立CLang

问题描述 投票:46回答:5

我正在使用opensuse,具体在mono's website when you click vmware上的变体

我收到这个错误。有谁知道我怎么解决它?

make[4]: Entering directory `/home/rupert/Desktop/llvm/tools/clang/tools/driver'
llvm[4]: Linking Debug+Asserts executable clang
collect2: ld terminated with signal 9 [Killed]
make[4]: *** [/home/rupert/Desktop/llvm/Debug+Asserts/bin/clang] Error 1

全文可以找到here

gcc linker
5个回答
49
投票

您的虚拟机没有足够的内存来执行链接阶段。链接是典型的构建中最耗费内存的部分,因为它是所有目标代码组合在一起并作为一个整体进行操作的地方。

如果您可以为VM分配更多RAM,那么就这样做。或者,您可以增加交换空间的数量。我对VM并不熟悉,但我想你设置的虚拟硬盘将有一个交换分区。如果你可以做得更大或分配第二个交换分区,这将有所帮助。

如果仅在构建期间增加RAM是最简单的事情。


39
投票

也有同样的问题,通过以下步骤解决(只是内存问题) -

  1. 通过运行free命令检查当前交换空间(必须大约10GB)。
  2. 检查交换分区 sudo fdisk -l /dev/hda8 none swap sw 0 0
  3. 创建交换空间并启用它。 sudo swapoff -a sudo /sbin/mkswap /dev/hda8 sudo swapon -a

如果你的交换磁盘大小不够,你想创建交换文件并使用它。

  1. 创建交换文件。 sudo fallocate -l 10g /mnt/10GB.swap sudo chmod 600 /mnt/10GB.swap 要么 sudo dd if=/dev/zero of=/mnt/10GB.swap bs=1024 count=10485760 sudo chmod 600 /mnt/10GB.swap
  2. 挂载交换文件。 sudo mkswap /mnt/10GB.swap
  3. 启用交换文件。 sudo swapon /mnt/10GB.swap

5
投票

我尝试使用make -j1,它的工作原理!但是构建需要很长时间。


3
投票

我在VirtualBox系统上构建了同样的问题。 FWIW我正在使用XP和2GB RAM的笔记本电脑上构建。我不得不将虚拟RAM提升到1462MB以获得成功的构建。另请注意,建议的8GB磁盘大小不足以在Ubuntu下构建和安装LLVM和Clang。我建议至少16GB。


1
投票

在这种情况下,我建议使用-l (--max-load)选项而不是限制-j。可能有用的answer

© www.soinside.com 2019 - 2024. All rights reserved.