X86
不同 32 位仿真模式之間的 GNU Linker 區別?
中的 386 和 32 位選項有什麼區別
ld -V
?
elf32_x86_64
elf_i386
i386linux
i386pep
i386pe
而且,我在哪裡可以找到有關這些“仿真模式”的文件
“仿真”選擇不同的連結器腳本;您會在
/usr/lib/ldscripts
系統中找到腳本本身。您列出的仿真對應於
elf32_x86_64
:用於 x64-32 的 ELF,也稱為x32 — 32 位 x86-64 二進製文件elf_i386
: 用於 i386 的 ELF — 32 位 i386 二進製文件i386linux
: a.out for i386i386pep
: PE+ for x86-64 — Windows 格式的 64 位二進製文件i386pe
: PE for i386 — Windows 格式的 32 位二進製文件連結器腳本定義輸出格式和體系結構、搜尋目錄(
ld
查找庫的位置)、二進製文件中的部分等。連結器腳本格式有據可查(見上文),但可用的腳本不是;在大多數情況下,GCC 會指定正確的,因此您無需擔心,而在其他情況下,您實際上最終需要自己閱讀連結描述文件以了解它們的作用。