【编译汇编链接】COFF文件及结构说明

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

如果在看这篇文章之前你并不了解代码是如何编程可行文件的可以看一下我的这边文章:
 
【编译汇编链接】C++代码文件到可执行的过程
 
只需要一两眼的时间吼~~💤

COFF文件说明

coff文件本质上就是代码在编译阶段产生的文件。

  1. 在windows系统上,准确说是使用visual studio生成时,会产生obj文件,一般都保存在与代码同级的Release或Debug目录下;
  2. 在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文件一共

评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

欧恩意

如有帮助,感谢打赏!

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值