尝试在 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“是”和“否”按钮的文本?
如何使用 C++ 在 RAD Studio XE6 中存储 Android 应用程序数据/设置?