如果在看这篇文章之前你并不了解代码是如何编程可行文件的可以看一下我的这边文章:
【编译汇编链接】C++代码文件到可执行的过程
只需要一两眼的时间吼~~💤
COFF文件说明
coff文件本质上就是代码在编译阶段产生的文件。
- 在windows系统上,准确说是使用visual studio生成时,会产生obj文件,一般都保存在与代码同级的
Release或Debug目录下; - 在linux上使用gcc进行编译操作时,生成的是out文件。
那么再来看一下COFF文件的官方定义:
COFF——通用对象文件格式(Common Object File Format),是一种很流行的对象文件格式(注意:这里不说它是“目标”文件,是为了和编译器产生的目标文件(.o/.obj)相区别,因为这种格式不只用于目标文件,库文件、可执行文件也经常是这种格式)。使用vs所产生的目标文件(*.obj)就是这种格式。其它的编译器,如GCC(GNU Compiler Collection)、ICL(Intel C/C++ Compiler)、VectorC,也使用这种格式的目标文件。不仅仅是C/C++,很多其它语言也使用这种格式的对象文件
统一格式的目标文件为混合语言编程带来了极大的方便。
当然,并不是只有这一种对象文件格式。常用格式的还有
OMF-对象模型文件(Object Module File)以及ELF-可执行及连接文件格式(Executable and Linking Format)。OMF是一大群IT巨头在n年制定的一种格式,在Windows平台上很常见。大家喜欢的Borland公司现在使用的目标文件就是这种格式。MS和Intel在n年前用的也是这种格式,现在都改投异侧,用COFF格式了。ELF格式在非Windows平台上使用得比较多,在Windows平台基本上没见过。
COFF文件结构
COFF文件一共

本文深入解析了Windows系统中COFF文件的构成,包括文件头、可选头、段落头和数据,以及它们在编译过程中的作用。重点介绍了COFF文件的历史背景和与其他对象文件格式的区别。适合理解代码编译流程和技术人员阅读。
最低0.47元/天 解锁文章
818

被折叠的 条评论
为什么被折叠?



