2016-07-16 3 views
1

Here - это шаг, на котором я нахожусь. Все прошло нормально до этого момента, но после замены старого линкера с новым и внесением изменений в файл спецификации, я получаю следующее сообщение об ошибке при попытке компиляции dummy.cLinux From Scratch (7.9) Глава 6.10 сбой связи

/tools/libexec/gcc/i686-pc-linux-gnu/5.3.0/collect2 -plugin /tools/libexec/gcc/i686-pc-linux-gnu/5.3.0/liblto_plugin.so -plugin-opt=/tools/libexec/gcc/i686-pc-linux-gnu/5.3.0/lto-wrapper -plugin-opt=-fresolution=/tmp/cciBczi2.res -plugin-opt=-pass-through=-lgcc -plugin-opt=-pass-through=-lgcc_s -plugin-opt=-pass-through=-lc -plugin-opt=-pass-through=-lgcc -plugin-opt=-pass-through=-lgcc_s --eh-frame-hdr -m elf_i386 -dynamic-linker /lib/ld-linux.so.2 /usr/lib/crt1.o /usr/lib/crti.o /tools/lib/gcc/i686-pc-linux-gnu/5.3.0/crtbegin.o -L/tools/lib/gcc/i686-pc-linux-gnu/5.3.0 -L/tools/lib/gcc/i686-pc-linux-gnu/5.3.0/../../../../i686-pc-linux-gnu/lib /tmp/ccxbWIWi.o "" -lgcc --as-needed -lgcc_s --no-as-needed -lc -lgcc --as-needed -lgcc_s --no-as-needed /tools/lib/gcc/i686-pc-linux-gnu/5.3.0/crtend.o /usr/lib/crtn.o 
/tools/lib/gcc/i686-pc-linux-gnu/5.3.0/../../../../i686-pc-linux-gnu/bin/ld: cannot find : No such file or directory 
collect2: error: ld returned 1 exit status 

После многих google search, я видел другие сообщения о похожих проблемах на одном и том же этапе, но все эти ошибки относятся к конкретным файлам, которые отсутствуют (обычно это файлы crt * .o), но эта ошибка отличается и запутанна тем, что она не работает Фактически список файлов, которые он не может найти. Я убедился, что ld и различные ссылки на него существуют и делают что-то, когда вы их вызываете. Я даже вырезал и вставлял каталог в команду cd, и он работает (я был изначально отключен /../../../../ на пути, но, похоже, он работает так хорошо). Какой файл отсутствует или не найден командой collect2?

+1

... Вы пропустили пустую пару двойных кавычек в командной строке? –

+0

Можете ли вы получить ld для вывода подробной информации? Также ld обычно печатает имя отсутствующего файла после этой ошибки, поэтому, похоже, он ищет файл с именем ':', возможно, стоит проверить, есть ли у вас дополнительный двоеточие где-то там. – GregHNZ

+0

@GregHNZ Нет, он ищет пустые имена файлов из-за этой части: '... /tmp/ccxbWIWi.o" "-lgcc ...' – melpomene

ответ

1

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

Правильная команда: cc dummy.c -v -Wl,--verbose &>dummy.log

То, что я вошел был: cc dummy.c -v -Wl, --verbose &>dummy.log

Это очень небольшая разница означает четыре часа таскание за волосы. Спасибо всем, кто предложил помощь!

Смежные вопросы