Почему линкер заканчивается на мне?когда я собираю CLang - PullRequest
48 голосов
/ 16 апреля 2011

Я использую opensuse, конкретный вариант на сайте mono, когда вы нажимаете 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

Полный текст можно найти здесь

Ответы [ 5 ]

50 голосов
/ 16 апреля 2011

У вашей виртуальной машины недостаточно памяти для выполнения фазы соединения. Связывание обычно является наиболее интенсивной частью сборки, поскольку весь объектный код собирается вместе и обрабатывается целиком.

Если вы можете выделить больше оперативной памяти для виртуальной машины, сделайте это. В качестве альтернативы вы можете увеличить объем пространства подкачки. Я не очень знаком с виртуальными машинами, но я думаю, что у виртуального жесткого диска, который вы настроите, будет раздел подкачки. Если вы можете сделать это больше или выделить второй раздел подкачки, это поможет.

Увеличение ОЗУ, хотя бы на время вашей сборки, является самым простым делом.

40 голосов
/ 24 августа 2013

Также получил ту же проблему и решил, выполнив следующие шаги ( Это только проблема с памятью ) -

  1. Проверяет текущее пространство подкачки, запустив free команда (должно быть около 10 ГБ.).
  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 голосов
/ 02 июля 2015

Я попытался с make -j1, и это работает! Но на сборку уходит много времени.

3 голосов
/ 03 января 2012

У меня была такая же проблема при сборке системы VirtualBox.FWIW Я строил на ноутбуке с XP и 2 ГБ оперативной памяти.Мне пришлось увеличить объем виртуальной памяти до 1462 МБ, чтобы получить успешную сборку.Также обратите внимание, что рекомендуемый размер диска 8 ГБ недостаточен для сборки и установки как LLVM, так и Clang под Ubuntu.Я бы порекомендовал по крайней мере 16 ГБ.

1 голос
/ 14 сентября 2018

Я бы предложил использовать опцию -l (--max-load) вместо ограничения -j в этом случае. Возможно, полезно ответ .

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...