C++:重命名dll和lib并链接

C++: renaming dlls and libs and linking

本文关键字:lib 链接 dll 重命名 C++      更新时间:2023-10-16

我们使用第三方库构建代码。此库同时具有32位和64位dll和lib。32位和64位版本都有相同的名称。我们的软件预计将同时为32位和64位构建,根据版本的不同,它自然应该链接到第三方工具的相应版本。问题是,我们的解决方案结构中只有一个第三方包含文件夹(32位或64位没有子文件夹(,所以我不能在不更改其中一个版本的名称的情况下将两个版本都放在那里。有人告诉我,如果我同时更改dll名称和相应的库名称(例如:在64位dll和库名称中添加64(,一切都会自动工作和加载,但对我来说,这似乎不起作用。事实上,我现在启动64位应用程序时遇到了一个奇怪的问题。奇怪的是,显然还有另一种情况,这种方法以前对我们有效。那么,这通常是如何工作的呢?只要我将代码链接到新名称,我可以更改lib和dll的名称吗?或者dll在运行时无法正确加载?

如果我正确理解这一点,我相信只要更改.lib的名称就足够了。导入库包含为其生成的.dll的名称。因此,当链接时,最终可执行文件仍将尝试加载正确的.dll。

当然,这确实假设您的部署在安装应用程序时安装了正确的.dll,但综合考虑,如果没有,我会非常惊讶。