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

49 linker gcc

当我点击vmware时,我正在使用opensuse,特定于mono的网站上的变体

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

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
Run Code Online (Sandbox Code Playgroud)

全文可在此处找到

Tro*_*our 50

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

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

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


Gau*_*av 40

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

  1. 通过运行free命令检查当前交换空间(必须大约10GB).
  2. 检查交换分区

    sudo fdisk -l
    /dev/hda8       none            swap    sw              0       0
    
    Run Code Online (Sandbox Code Playgroud)
  3. 创建交换空间并启用它.

    sudo swapoff -a
    sudo /sbin/mkswap /dev/hda8
    sudo swapon -a
    
    Run Code Online (Sandbox Code Playgroud)

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

  1. 创建交换文件.

    sudo fallocate -l 10g /mnt/10GB.swap
    sudo chmod 600 /mnt/10GB.swap
    
    Run Code Online (Sandbox Code Playgroud)

    要么

    sudo dd if=/dev/zero of=/mnt/10GB.swap bs=1024 count=10485760
    sudo chmod 600 /mnt/10GB.swap
    
    Run Code Online (Sandbox Code Playgroud)
  2. 挂载交换文件.

    sudo mkswap /mnt/10GB.swap
    
    Run Code Online (Sandbox Code Playgroud)
  3. 启用交换文件.

    sudo swapon /mnt/10GB.swap
    
    Run Code Online (Sandbox Code Playgroud)

  • 显示如何制作交换文件非常有用. (8认同)

小智 5

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