我需要一个64位的.lib文件转换从COFF
到OMF
。 Coff2Omf.exe
正常工作与32位库,但给...如何将64位COFF转换为OMF?
ERROR: COFF error: FOOx64.lib
(coffread.cpp, 1637) : invalid machine type detected
...在64位库。 是否有更新的工具或类似的用于此?
我需要一个64位的.lib文件转换从COFF
到OMF
。 Coff2Omf.exe
正常工作与32位库,但给...如何将64位COFF转换为OMF?
ERROR: COFF error: FOOx64.lib
(coffread.cpp, 1637) : invalid machine type detected
...在64位库。 是否有更新的工具或类似的用于此?
不知OMF规范曾经对64位架构的存在。顺便说一下,为什么你需要64位的OMF文件? C++ Builder上的64位版本基于LLVM编译器后端,它生成ELF对象文件(据我所知)
我不知道coff2elf是否与C++ Builder XE7捆绑在一起,但是,也许你可以使用开源工具,如“目标文件转换器”,寻找在这里: http://www.agner.org/optimize/#objconv
每英巴卡迪诺的文档:
Differences Between Clang-based C++ Compilers and Previous-Generation C++ Compilers
对象和库文件格式
- BCC32及其相关工具的.obj和.lib文件使用OMF。
- 基于锵-C++编译器在的.o和.a文件使用ELF。
这种差异意味着,例如,当你迁移32位Windows应用程序,你必须改变引用的.lib和.obj文件是u和的.o,分别。
BCC64.EXE, the C++ 64-bit Windows Compiler
编译的目标文件
ELF64格式
不指定模块名的文件扩展名(.ext),只要因为您正在使用默认文件类型。接头承担MODULENAME的文件扩展名(.ext)以下默认值:
.obj
扩展BCC32.o
扩展:
基于锵-C++编译器
BCCOSX所以,如果你省略
.ext
,那么正确的扩展名会自动根据你的当前目标平台使用。
OMF仅由32位编译器/链接。 64位编译器/链接器使用ELF64代替。
我有一个项目针对32位和64位使用Win SDK的lib文件。我需要将它们转换为OMF进行链接。但是你可能是对的,也许现在的情况和现在不同了? –
OMF仅由32位链接器使用。 64位链接器使用ELF64代替。这在Embarcadero的DocWiki中有记载。 –