首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >OMF格式转换为COFF格式

OMF格式转换为COFF格式
EN

Stack Overflow用户
提问于 2013-06-03 16:22:59
回答 2查看 2.9K关注 0票数 4

是否有像Borland“coff2omf.exe”这样的工具可以将Borland OMF LIB格式转换为MS VC++ COFF LIB格式?

实际上,我想在delphi中创建.obj文件,并在MSVC++中使用它。

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2013-06-03 16:37:28

据我所知,没有这样的工具。使用Agner的目标文件转换器,Arnaud提到的工具,我从来没有成功地将Delphi单元转换成可以链接到MSVC程序的COFF .obj。

我确实认为,获取Delphi源代码,编译它,然后在MSVC中使用生成的对象是不现实的。另一个方向是很有可能的。您可以将C代码编译为一个对象,并将该对象链接到您的Delphi可执行文件。执行此操作时,需要解析编译对象所具有的任何依赖项。

但是,要将Delphi对象链接到C/C++程序中,将需要使用Delphi RTL的任何部分。这将是棘手的,除非您碰巧没有使用Delphi RTL的任何部分,这似乎不太可能。

在你的情况下,我认为你的选择是:

  1. 将代码移植到C或C++。
  2. 将Delphi代码编译成动态库,并链接到C++程序中的动态库。
票数 4
EN

Stack Overflow用户

发布于 2013-06-03 17:04:33

是的,确实有这样一个工具。

参见this tool

此实用程序可用于在所有32位和64位x86平台上在COFF/PE、OMF、ELF和Mach-O格式之间转换目标文件。可以修改对象文件中的符号名称。可以跨平台构建、修改和转换函数库。可以转储目标文件和可执行文件。还包括一个非常好的反汇编程序,支持SSE4,AVX,AVX2,FMA和XOP指令集。包含源代码(GPL)。手册。

请注意,这个http://www.agner.org网站是我所知道的关于低级优化的最好资源。如果你想解决性能问题,所有的链接信息都值得一读。

但是对于使用Delphi生成的.obj和VC++来说,这不是很容易实现的,但是对于非常小的代码部分。您需要在代码中使用Delphi RTL。外部.dll要好得多。还要注意,有些类型(如字符串或动态数组)在VC++中不容易修改。

票数 7
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/16892601

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档