目标文件

目标文件的格式

ELF 文件类型说明实例
可重定位文件(ET_REL)包含待链接的代码、数据和重定位信息Linux 的 .o
可执行文件(ET_EXEC)可装载执行的文件类型非 PIE 的 ELF 可执行程序
共享目标文件(ET_DYN)用于共享库,也用于 PIE 可执行程序;能否直接运行取决于文件用途和装载要求.so、PIE 可执行程序
核心转储文件(ET_CORE)记录进程崩溃时的内存与执行状态core 文件

静态库 .a 通常是多个目标文件组成的归档,不是单个 ET_REL 文件。Windows 的 .obj、.exe、.dll 仅可作用途类比,通常采用 COFF/PE 格式,不属于 ELF。

目标文件的内容

![ChatGPT Image 2026年7月2日 11_28_06](assets/ChatGPT Image 2026年7月2日 11_28_06.png)

同一进程的线程共享地址空间,包括代码段、数据段、堆和 mmap 映射;每个线程有各自的执行栈、寄存器状态和 TLS 实例。线程栈仍位于共享地址空间中,并非其他线程不可访问的隔离内存。

节 Section

主要描述文件中的代码、数据、符号等如何组织,供编译器和链接器使用。