我正在使用Embarcadero XE8 C ++ builder 32位。
我在我的程序中添加了一个库来解决Sequelize-cmd
。
当我添加库时,我收到了标题中的错误。所以我在网上搜索并在stackoverflow上找到了这个主题: Linker error "contains invalid OMF record"
正如它所说的COFF2OMF工具,CAN工作。可悲的是它对我不起作用,我给了一个7mb的库文件,当我用它的工具转换它只有41kb ...所以我猜转换失败了。当我将转换后的文件添加到我的程序时,它只是忽略它并仍然显示Unresolved external error
。
那么如何让我的库与我的C ++构建器一起工作?
答案 0 :(得分:2)
一点背景:
库需要使用与您尝试的应用程序相同的工具进行编译,因为每个编译器的工作方式都有所不同。大多数Windows库都是使用MVSC(Microsoft Visual Studio编译器)编译的。
您正在使用Embarcardero编译器,这意味着MVSC库不兼容(您可能已经注意到了;))。
您有多种选择。
implib
的工具可以获取共享库(.dll)并生成一个Embarcardero样式的.lib,用于您的项目。 COFF2OMF
转换静态库。即使文件大小很奇怪,也至少要尝试一下。LoadLibrary
函数调用。这个要求您手动映射您需要的功能,但是您可以使用.lib
。