不同 32 位仿真模式之间的 GNU Linker 差异?

不同 32 位仿真模式之间的 GNU Linker 差异?

中的 386 和 32 位选项有什么区别ld -V

  • elf32_x86_64
  • elf_i386
  • i386linux
  • i386pep
  • i386pe

而且,在哪里可以找到有关这些“仿真模式”的文档

答案1

“仿真”选择不同的链接描述文件;您将在/usr/lib/ldscripts您的系统上找到脚本本身。您列出的仿真对应于

  • elf32_x86_64:x64-32 的 ELF,又名x32— 32 位 x86-64 二进制文件
  • elf_i386: i386 的 ELF — 32 位 i386 二进制文件
  • i386linux: i386 的 a.out
  • i386pep: PE+ for x86-64 — Windows 格式 64 位二进制文​​件
  • i386pe:i386 的 PE — Windows 格式的 32 位二进制文​​件

链接器脚本定义输出格式和体系结构、搜索目录(在其中ld查找库)、二进制文件中的部分等等。

链接器脚本格式有详尽的文档(见上文),但可用的脚本却没有;在大多数情况下,GCC 会指定正确的脚本,因此您不必担心它,而在其他情况下,您最终需要阅读链接器脚本本身才能弄清楚它们的作用。

相关内容