2016-03-13 4 views
2

Я изучаю инструкцию по созданию ОС на http://wiki.osdev.org/Bare_Bones. Когда я пытаюсь связать boot.o и kernel.o с помощью этой команды: i686-elf-gcc -T linker.ld -o myos.bin -ffreestanding -O2 -nostdlib boot.o kernel.o -lgcc, я просто получить эту ошибку:Gcc collect2: фатальная ошибка: не удается найти 'ld'

collect2: fatal error: cannot find 'ld' 
compilation terminated. 

Я только что установили свежий Ubuntu 15,10, что с GCC-5.2.1 и BinUtils-2.25.1. Я искал в интернете ответы, но ничего не помогло.

+0

При связывании используйте компоновщик напрямую, а не вызывайте программу интерфейса GCC. То есть 'i686-elf-ld' вместо этого. –

+1

это может помочь добавить флаг «-v» в командную строку gcc, чтобы увидеть все пути. – max630

+0

@JoachimPileborg Когда я пытаюсь выполнить команду 'i686-elf-ld', он говорит, что не может найти команду. Любые другие предложения? @ max630 Он говорит, что это: COLLECT_GCC = i686-эльф-GCC COLLECT_LTO_WRAPPER = $ HOME/Opt/крест/libexec/ССАГПЗ/i686-эльф/5.2.0/LTO-обертка Цель: i686-эльф Настраивается с: ../gcc-5.2.0/configure --target = i686-elf --prefix = $ HOME/opt/cross --disable-nls --enable-languages ​​= c, C++ --without-headers Модель темы: single gcc версия 5.2.0 (GCC) Итак, что именно я пытаюсь увидеть? – XXO2

ответ

0

У меня была эта ошибка при взломе удаленной машины и попытка использования gcc для компиляции эксплойта на компьютере пользователя.

Я просто скопировал программу ld в /tmp/, рабочий каталог, в котором я был компиляция мой эксплуатирует exploit.c, запустив cp /usr/bin/ld /tmp/ld следует оригинальной НКА команды компиляции и компиляция работала.

+0

После возврата (общей) виртуальной машины и повторения этой попытки, странно это не сработало. Bizarre ... – Info5ek

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

  • Нет связанных вопросов^_^