Ошибка: /usr/bin/ld: окончательная ссылка не удалась: файл усечен

Я получаю следующую ошибку при компиляции NS3 (через waf): -

/usr/bin/ld: окончательная ссылка не удалась: файл усечен

collect2: ld вернул 1 статус выхода

Что может быть возможной причиной того же?


person Siddharth    schedule 16.11.2013    source источник


Ответы (2)


Один из объектных файлов, которые вы связываете, не был завершен и теперь является либо пустым файлом, либо усеченным, потому что компиляция по какой-то причине прервалась. Удалите рассматриваемый файл (сообщение об ошибке должно содержать имя) и пересоберите.

person rubenvb    schedule 16.11.2013
comment
Спасибо. Проблема решена. Я думаю, вы указали точную проблему. - person Siddharth; 16.11.2013

Я работаю на определенной платформе, и при сборке с GCC 4.1.2 я столкнулся с этим сообщением об ошибке, когда мой код компилировался нормально. Решение удалить файл не помогло.

В заголовочном файле объявлен массив большого размера.

sometype array[1000000000]; /* 1.000.000.000 */

Компилятор создал объектные файлы без предупреждений и ошибок, но компоновщик остановился с рассматриваемой ошибкой. Чтобы решить эту проблему, мне пришлось удалить один ноль из этого объявления массива. Похоже, я достиг предела bss-сегмента.

person maxik    schedule 23.05.2018