文章目录 1. 目标文件概念 2. 目标文件格式 2.1 OMF文件格式 2.2 COFF文件格式 2.3 ELF文件格式 2.4 Mach-o文件格式 3. ELF文件格式分析 3.1 ELF文件格式概述 1. 目标文件概念 源代码经过编译器编译之后所生成的文件便是目标文件(Windows下的.obj和Linux下的.o)。此时的目标文件还不能执行,因为因为还缺失链接、装载等过程,其中某些符号或是地址还没有被正确寻址调整。它是一种编译之后的可执行文件格式,即按照可执行文件格式存储,而在文件的整体结构上面有些差异。从广义上来看,目标文件和可执行文件的格式其实是一样的。因此,可以将目标文件和可执行文件看作是同种类型的文件。目标文件如图1红色虚线框所示。 图1 可执行文件的创建过程 2. 目标文件格式 x86平台至少有四种常用的对象文件格式