将COFF lib文件转换为OMF格式

有没有办法将COFF库(lib文件)转换为OMF库以便与C ++ Builder6一起使用?这个coff不仅仅是导入库,还包含一些代码。 当我尝试使用borland的coff2omf.exe转换它时,我从15KB文件中获取1KB文件。     
已邀请:
OMF对象文件比同等的COFF对象小很多,所以你得到的可能是有效的。 如果您发现它确实不是,您可以将lib文件分解为单个目标文件,反汇编目标文件,将它们重新组装到OMF目标文件,并将它们放在一起放入OMF lib文件中。     
您可以使用http://agner.org/optimize上提供的Object文件转换器代替DigitalMars转换器   该实用程序可用于在COFF / PE之间转换目标文件,   适用于所有32位和64位x86平台的OMF,ELF和Mach-O格式。   可以修改目标文件中的符号名称。可以构建,修改和转换   跨平台的函数库。可以转储目标文件和   可执行文件。还包括一个非常好的反汇编支持   SSE4,AVX,AVX2,FMA和XOP指令集。源代码   包括(GPL)。 这是一个很好的低级优化站点,相关的手册pdf文件中有很多有用的信息,关于跨多个平台的库格式。     
这已经很晚了,但是如果有人在寻找答案,你可以从DigitalMars查看COFFIMPLIB。 COFF2OMF可以在同一个站点上获得,但它看起来比较旧。     
集成Delphi(omf)和Ada(gcc,coff)需要付出很多努力,直到我放弃在单个exe中完成它。 老实说,我试图将gcc rtl和ada rtl .a(coff库)分解成许多.o(对象),通过coff2omf转换它们(有DMD coff2omf和iirc另一个convobj左右)。一些coff .o未能转换为.obj,所以我不能说它是否是一种可靠的方式。 当异常和其他深层细节需要时,汇编程序级转换并不那么简单。 遗憾的是我没有尝试过一个名为的工具 ftp://ftp.styx.cabel.net/pub/UniLink/ 这并不明显,但UniLink可能可用于实现目标。其目标之一是C ++ Builder包(动态和静态)。 unilink -Tpp -GI应该做的伎俩     
值得注意的是,在较新版本的Delphi(> = XE2)中,编译器接受COFF以及OMF。对于C ++ Builder来说可能也是如此。 64位编译器仅使用COFF。 有关链接COFF的更多信息,请参见此处。     

要回复问题请先登录注册