回答缺口出来的“MetaWINDOW常见问题 - OMF VS COFF目标文件Formats.htm”

由于PC文明向上的黎明到了时间的Microsoft Win32编程工具来了,生产的几乎所有的PC编译器的目标文件使用英特尔目标模块格式(OMF)标准。后来,英特尔推出了386个处理器和32位保护模式,此时他们还将OMF规范扩展到了32位,从而形成了“OMF-386”,成为大多数PC保护模式环境的标准。大约在同一时间,最初的Windows NT开发团队也在设计代码,不仅用于英特尔处理器,还用于支持其他供应商的处理器。微软NT团队选择了被称为通用对象文件格式(COFF)从UNIX系统V COFF对象模块的官方目标代码格式导出的更便携的对象模块格式后来成为所有微软的Win32开发工具的事实标准,并获得在正在格式更接近于移植可执行文件的优势 - 为Win32本机可执行文件格式(COFF格式的连接要少得多的工作,以创建比从OMF格式文件COFF文件32位的EXE或DLL)。

正如有OMF-和COFF格式的目标文件(.OBJ的),还有OMF和COFF格式库文件(.LIB的)。幸运的是,这些库基本上只是对象文件的一个集合,还有一些头文件信息可以让链接器确定从库中使用哪些对象文件。然而,为了使事情变得困难,OMF和COFF都使用相同的文件扩展名.obj和.lib来引用两种不同类型的对象和库文件格式(因为这样你就不能只看文件扩展名告诉对象模块或库文件是否为OMF或COFF)。

从不同的编译器厂商混合对象文件和库文件的问题是,有些供应商支持COFF,其他供应商使用OMF,和几个可以同时处理。例如,Borland仍然使用OMF目标文件和库,而微软的32位编译器生成COFF格式文件。在编译和链接Windows应用程序时,Watcom C/C++ v11.0似乎更喜欢COFF,但生成OMF目标文件以与其DOS4GW 32位保护模式DOS扩展程序一起使用。除此之外,默认情况下,Microsoft MASM 6.13会生成OMF文件,但使用/ coff开关可以发出COFF目标文件。

当谈到时间不同格式的链接文件,不同接头做不同的事情。例如,Microsoft Visual C/C++链接器是为COFF格式的目标文件和库而设计的,但如果需要,它会尝试将OMF目标文件转换为COFF文件。这在某些情况下可行,但不幸的是,Microsoft LINK不支持所有OMF记录类型,因此在许多情况下,链接器在给出OMF格式对象文件时可能仍会失败。另外,虽然Microsoft LINK尝试对OMF目标文件提供一些支持,但它将拒绝处理任何OMF格式库。其他连接器,如Borland的TLINK,是为OMF目标文件设计的,并且同样拒绝使用COFF格式的对象或库文件。某些DOS扩展器和嵌入式系统供应商(如Phar Lap)提供了自己的连接器,它们同时支持OMF和COFF,因此可供您选择。

底线是混合OMF和COFF对象和库文件类型可能是一团糟(加上来自连接器的神秘错误消息不起作用)。除非您的链接器专门支持它,否则您应该坚持为您的编译器/链接器/平台推荐的对象和库格式,并避免混合OMF和COFF文件。

coff2omf matlab,OMF和COFF格式有什么区别?相关推荐

  1. 使用TASM编译COFF格式和连接

    作 者: Anskya 看到网络上流传的一份Drocon的mercury的代码 程序源码使用TASM32编译使用MASM32来连接...关键的地方就在这里 为什么要使用TASM编译...正常情况下TA ...

  2. matlab微分的语句格式,偏微分差分四种格式的matlab程序.doc

    偏微分差分四种格式的matlab程序.doc 偏微分差分四种格式的matlab程序 (1)Lax-Fridrichs格式 function u = LaxFridrichs(a,dt,n,x1,x2, ...

  3. matlab数据转换为tecplot格式[ASCII码格式下的plt文件]

    matlab数据转换为tecplot格式[ASCII码格式下的plt文件] 1 tecplot能读取的的常见ASCII格式 1.1 文件格式与文件头 1.2 zone相关的格式 2 一维数据 3 二维 ...

  4. Matlab用三种格式来表示日期与时间

    Matlab用三种格式来表示日期与时间 转自http://www.360doc.com/content/14/1206/16/16363452_430844776.shtml (1)双精度型日期数字: ...

  5. MATLAB 绘制论文图片格式设置万能代码模板

    绘图在数学建模.撰写论文时是必不可少的,MATLAB 就是其中一个非常实用的工具.这次给大家分享一个我收藏并用了很久的万能MATLAB绘图模板,本人曾用这个模板绘制过数模国赛.美赛以及电磁杯论文中的绝 ...

  6. MATLAB导入Excel时间格式

    MATLAB导入Excel时间格式,并转换成一个秒数 读取Excel时间格式转换成秒数 直接在MATLAB中输入时间格式转换成秒 读取Excel时间格式转换成秒数 Excel中的数据为标准时间形式:1 ...

  7. matlab csc,matlab - 从Matlab CSC转换为CSR格式 - 堆栈内存溢出

    我最终使用CUSP库将Matlab中的CSC格式从Matlab转换为CSR,如下所示. 从matlab获取矩阵A之后,我得到了row , col和values矢量,然后将它们复制到分别为它们创建的th ...

  8. matlab编程读取导航文件文件,基于Matlab读取标准RINEX格式的GPS星历数据

    [实例简介] 基于Matlab读取标准RINEX格式的GPS星历数据,采用Matlab直接读取Rinex文件 张妮,等基于 Matlab读取标准 RINEX格式的GPS星历数据 navdata(i). ...

  9. matlab中double、im2double、mat2gray区别

    原文地址:matlab中double.im2double.mat2gray区别--原创作者:mimi ****************假设某图像数据A(uint8格式)**************** ...

  10. 免扣PNG图片素材,用着就是爽|png与jpg格式图片的区别

    我们平时看到的图片,最常见的格式就是png和jpg两种格式.这两种格式有什么区别呢? 1.png格式可以进行无损压缩,而jpg格式则牺牲了图片质量,即有损. 2.png图片在压缩之后,体积不会小很多: ...

最新文章

  1. 【Leetcode】 刷题之路1(python)
  2. [转载] 理解RESTful架构
  3. Oracle关联更新语法(T-SQL中的update...from)
  4. excel删除重复数据保留一条_VBA利用字典删除重复行,保留唯一值
  5. oracle什么是swap分区,linux 安装oracle时swap空间不足
  6. Delphi XE2 之 FireMonkey 入门(26) - 数据绑定: TBindingsList: TBindExprItems
  7. Linux系统openssl升级,在Linux系统上升级OpenSSL的方法
  8. php 重命名 漏洞,上传漏洞[汇总]
  9. tomcat启动的时候,没加载xml配置文件
  10. React Native Fetch封装那点事...
  11. 8-12 三个定时任务
  12. mysql into outfile语法_select into outfile
  13. Basler相机全部型号详细参数
  14. 杭电oj刷题(2099)
  15. Python 输出[m,n]之间既能被3整除又能被7整除的数
  16. VS2019_Windows桌面应用程序_01
  17. appimage转deb
  18. c语言内存越界例子,内存越界的可能情况分析,C语言内存越界详解
  19. 发现vjudge用搜狗浏览器无法登陆
  20. 非法出售公民信息入罪标准确定 保护信息安全互金行业仍需砥砺前行

热门文章

  1. python棋盘放米的故事_棋盘摆米的故事你得到了什么启发
  2. 机电传动控制第五周作业
  3. 开服当GM的基本准则
  4. 苏宁易购开放平台_苏宁易购半年报解读:业态场景与零售服务的“两手抓”
  5. 阿里云 OSS 图片水印
  6. java中obj_Java中Object类的详细介绍
  7. 作为意志和表象的Web3世界
  8. NBA30只球队2020年各队数据分析
  9. matlab 最小二乘法拟合_最小二乘法与高斯马尔科夫定理(无偏性、有效性)
  10. 轻松实现页面提交时,显示“提交中..” (转帖)