链接器错误“包含无效的 OMF 记录”2

Linker error “contains invalid OMF record” 2

我正在使用 Embarcadero XE8 C++ builder 32 位。

我在我的程序中添加了一个库来解决 Unresolved external error

当我添加库时,出现了标题中的错误。所以我在网上搜索并在 Whosebug 上找到了这个主题: Linker error "contains invalid OMF record"

正如 COFF2OMF 工具所说,可以工作。遗憾的是它对我不起作用,我给了一个 7mb 的库文件,当我用工具转换它时它只有 41kb ...所以我猜转换失败了。当我将转换后的文件添加到我的程序时,它只是忽略它并仍然显示 unresolved external error.

那么如何让我的库与我的 C++ 构建器一起工作?

一点背景:

库需要使用与您尝试制作的应用程序相同类型的工具进行编译,因为每个编译器的工作方式都略有不同。 Windows 的大多数库都是使用 MVSC(Microsoft Visual Studio 编译器)编译的。

您正在使用 Embarcardero 编译器,这意味着 MVSC 库不兼容(您可能已经注意到 ;))。

您有多种选择。

  1. 如果可以的话,获取库的源码,用自己的编译器编译。这样成功的几率最大。
  2. 我可能弄错了,因为已经有一段时间了,但是我相信有一个名为 implib 的工具,它使用共享库 (.dll) 并从中生成一个 Embarcardero 风格的 .lib 以供您使用项目。
  3. 使用COFF2OMF转换静态库。即使文件大小很奇怪,至少也要尝试一下。
  4. 尝试 LoadLibrary 函数调用。这需要您手动映射所需的功能,但是您可以使用 .lib.

祝你好运。