我正在使用32位保護模式內核。我正在嘗試生成其文本區域從0x100000開始的代碼。我發出以下命令:=linux ld -Ttext無法使用正確的組織生成可執行文件
LD -melf_i386 $(OBJS)-o內核-Ttext的0x100000
當我檢查該e_entry是的0x100000所產生的32位ELF文件我的期望。 但是,這不是,這是我的問題,因爲我不知道爲什麼。內核 有一部分寫在nasm中,正在64位linux上編譯,目標是32位ELF。上述ld命令由 生成的實際e_entry值爲0x116D5A。我想知道這是否與編譯器 選項,我需要像-fpic或與nasm生成的代碼不兼容或 也許有ld中的錯誤嗎?有人可以請幫忙。由於
應當指出的是,同時-r選項上面LD爲:= LD -r -melf_i386 $(OBJS)-o內核-Ttext的0x100000
生成輸出,其中e_entry是的0x100000然而,該文件不是可執行文件。 我需要它是一個可執行文件。