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

时间:2011-04-15 22:14:12

标签: gcc linker

我正在使用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

5 个答案:

答案 0 :(得分:47)

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

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

增加RAM(如果仅在构建期间)是最容易做到的事情。

答案 1 :(得分:38)

也遇到了同样的问题并通过以下步骤解决(只是内存问题) -

  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
    
  4. 如果您的交换磁盘大小不够,您可以创建交换文件并使用它。

    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
      

答案 2 :(得分:5)

我尝试使用make -j1并且它有效!但是构建需要很长时间。

答案 3 :(得分:3)

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

答案 4 :(得分:1)

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