尝试在 XE 中访问 RAD Studio 10.2 编译库时出现链接错误

Posted

技术标签:

【中文标题】尝试在 XE 中访问 RAD Studio 10.2 编译库时出现链接错误【英文标题】:Link error when trying to access a RAD Studio 10.2 compiled lib in XE 【发布时间】:2021-07-25 12:47:59 【问题描述】:

我需要 IniFile 的最新功能,所以在 RAD Studio 10.2 中编译了我的 XE .lib 项目。编译成功,但在我的 XE 项目中使用它时,出现“无法打开 SChore.obj”链接器错误。如何解决这个错误?

这个“Schore.dll 存在于“C:\Program Files (x86)\Embarcadero\Studio\19.0\lib\win32\release”中。我也尝试将此路径添加到两个 .lib 的包含路径中作为XE项目,错误依然存在。

有解决此错误的建议吗?

【问题讨论】:

【参考方案1】:

您不能在不同版本的编译器之间共享.lib 文件。您需要为每个编译器专门编译的单独版本的 .lib

这意味着您不能在 XE 中使用 10.2 .lib。您可以做的是将 10.2 中的 lib 代码编译成 DLL,然后在 XE 项目中使用该 DLL。

如果您想在编译时静态链接到 DLL 的函数,您可以使用 XE 版本的 C++Builder 的 IMPLIB 工具从 DLL 创建一个新的导入 .lib,然后将其添加到您的XE项目。否则,您可以使用 Win32 LoadLibrary()GetProcAddress() 函数在运行时动态访问 DLL 的函数。

【讨论】:

什么是导入库以及如何创建它并与 exe 一起使用?我们有任何文件吗?

以上是关于尝试在 XE 中访问 RAD Studio 10.2 编译库时出现链接错误的主要内容,如果未能解决你的问题,请参考以下文章

在 Rad Studio XE 6 中找不到 C++ Builder 项目

如何在 RAD Studio XE 中更改 TMsgDlgButtons“是”和“否”按钮的文本?

delphi XE 和 RAD studio有啥区别

如何使用 C++ 在 RAD Studio XE6 中存储 Android 应用程序数据/设置?

Delphi TADOStoredProc / D6 和 RAD Studio XE2 最近的故障

Delphi XE8,C++ Builder XE8,RAD Studio XE8 官方 ISO 文件下载,附激活工具