2016-03-13 660 views
2

我正在瀏覽關於在http://wiki.osdev.org/Bare_Bones上製作操作系統的教程。當我嘗試使用以下命令鏈接boot.o和kernel.o:i686-elf-gcc -T linker.ld -o myos.bin -freestanding -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 /選擇/交叉/ libexec目錄/ GCC/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 線程模型:單個 gcc版本5.2.0(GCC) 那麼,我究竟在看什麼? – XXO2

回答

0

我在攻擊遠程機器並嘗試使用gcc編譯受害機器上的漏洞時出現此錯誤。

我只是複製程序ld/tmp/,我在那裏編譯工作目錄我通過運行 cp /usr/bin/ld /tmp/ld ,再加上原有的gcc編譯命令利用exploit.c和編譯工作。

+0

恢復(共享)虛擬機並再次嘗試此操作後,很奇怪,它不起作用。奇怪的... – Info5ek

相關問題