Evan Carroll Asked: 2018-09-25 02:59:35 +0800 CST2018-09-25 02:59:35 +0800 CST 2018-09-25 02:59:35 +0800 CST 不同 32 位仿真模式之间的 GNU Linker 区别? 772 中的 386 和 32 位选项有什么区别ld -V? elf32_x86_64 elf_i386 i386linux i386pep i386pe 而且,我在哪里可以找到有关这些“仿真模式”的文档 x86 linker 1 个回答 Voted Best Answer Stephen Kitt 2018-09-25T03:25:17+08:002018-09-25T03:25:17+08:00 “仿真”选择不同的链接器脚本;您会在/usr/lib/ldscripts系统中找到脚本本身。您列出的仿真对应于 elf32_x86_64:用于 x64-32 的 ELF,也称为x32 — 32 位 x86-64 二进制文件 elf_i386: 用于 i386 的 ELF — 32 位 i386 二进制文件 i386linux: a.out for i386 i386pep: PE+ for x86-64 — Windows 格式的 64 位二进制文件 i386pe: PE for i386 — Windows 格式的 32 位二进制文件 链接器脚本定义输出格式和体系结构、搜索目录(ld查找库的位置)、二进制文件中的部分等。 链接器脚本格式有据可查(见上文),但可用的脚本不是;在大多数情况下,GCC 会指定正确的,因此您无需担心,而在其他情况下,您实际上最终需要自己阅读链接描述文件以了解它们的作用。
“仿真”选择不同的链接器脚本;您会在
/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 会指定正确的,因此您无需担心,而在其他情况下,您实际上最终需要自己阅读链接描述文件以了解它们的作用。