目标文件
大部分编译器将高级语言源代码转换成目标文件格式。目标文件格式是一种中间文件格式,
包含机器指令、运行时期的二进制数据及一些元信息。链接器根据元信息将各个目标模块合
并在一起,生成完整的可执行文件。
通常来说,真正的可执行文件格式(例如:Linux的ELF格式,Windows的PE格式)与目标
文件格式相似,主要区别在于可执行文件中一般没有未解析的外部引用,在文件布局上也有一
实践上的区别。目标文件通常设计得尽量小,而可执行文件则往往设计成尽可能快地调入内存,
即使这样会使它的体积增大。
最常见的目标文件格式是COFF---Common Object File Format。Windows的PE格式
就是对COFF稍加了改动。
COFF的基本布局如下:
注:本文内容部分参考
1.《WRITE GREAT CODE》 VOLUME2:THINKING LOW-LEVEL,WRTING HIGH-LEVEL
2. 《Understanding and Using COFF》