我正在使用 Embarcadero XE8 C++ 构建器 32 位。
我正在向我的程序添加一个库来解决Unresolved external error
.
当我添加库时,出现如标题所示的错误。于是我上网搜索了一下,在stackoverflow上找到了这个主题:链接器错误“包含无效的 OMF 记录” https://stackoverflow.com/questions/17694860/linker-error-contains-invalid-omf-record
正如它所说,COFF2OMF 工具可以工作。遗憾的是它对我不起作用,我给出了一个 7mb 的库文件,当我用该工具转换它时它只有 41kb...所以我猜转换失败了。当我将转换后的文件添加到我的程序中时,它只是忽略它并仍然显示unresolved external error
.
那么我怎样才能让我的库与我的 C++ 构建器一起工作呢?
一点背景:
库需要使用与您尝试创建的应用程序相同类型的工具进行编译,因为每个编译器的工作方式都略有不同。大多数 Windows 库都是使用 MVSC(Microsoft Visual Studio 编译器)编译的。
您正在使用 Embarcadero 编译器,这意味着 MSVC 库不兼容(您可能已经注意到了;))。
你有多种选择。
- 如果可以的话,获取库的源代码并使用您自己的编译器进行编译。这样成功的机会就最大。
- 我可能错了,因为已经有一段时间了,但我相信有一个工具叫做
implib
它采用共享库 (.dll) 并从中生成 Embarcardero 样式的 .lib 以在您的项目中使用。
- Use
COFF2OMF
转换静态库。即使文件大小很奇怪,至少也要尝试一下。
- Try the
LoadLibrary
函数调用。这需要您手动映射所需的功能,但是您可以使用.lib
.
祝你好运。
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)