C++:重命名dll和lib并链接
C++: renaming dlls and libs and linking
我们使用第三方库构建代码。此库同时具有32位和64位dll和lib。32位和64位版本都有相同的名称。我们的软件预计将同时为32位和64位构建,根据版本的不同,它自然应该链接到第三方工具的相应版本。问题是,我们的解决方案结构中只有一个第三方包含文件夹(32位或64位没有子文件夹(,所以我不能在不更改其中一个版本的名称的情况下将两个版本都放在那里。有人告诉我,如果我同时更改dll名称和相应的库名称(例如:在64位dll和库名称中添加64(,一切都会自动工作和加载,但对我来说,这似乎不起作用。事实上,我现在启动64位应用程序时遇到了一个奇怪的问题。奇怪的是,显然还有另一种情况,这种方法以前对我们有效。那么,这通常是如何工作的呢?只要我将代码链接到新名称,我可以更改lib和dll的名称吗?或者dll在运行时无法正确加载?
如果我正确理解这一点,我相信只要更改.lib的名称就足够了。导入库包含为其生成的.dll的名称。因此,当链接时,最终可执行文件仍将尝试加载正确的.dll。
当然,这确实假设您的部署在安装应用程序时安装了正确的.dll,但综合考虑,如果没有,我会非常惊讶。
相关文章:
- 为什么我的链接器在找到Coin4d.lib后搜索Coin4sd.lib?
- VS2015 未链接用户32.lib
- 无法在 DLL 中链接 SDL2-static.lib
- 链接:致命错误LNK1104:无法打开文件"python37_d.lib"
- 链接器找不到导入的 DLL 的 LIB 文件
- C++:重命名dll和lib并链接
- 在Qt中链接具有非标准名称的lib文件
- 链接器错误:在包含 .so lib 后未定义对 xxx 的引用
- 链接 library.lib 使用 setup.py.
- G++ 无法链接 curl lib 文件
- 我真的必须链接Ws2_32.lib吗?
- 链接 .lib 并在 Windows 中使用 .dll 在 C++ 在 Eclipse 中
- 传递"-l"<libname>还是将"<libname>lib.a"直接传递给链接器?
- cmake cuda在Windows上单独的编译静态LIB链接错误,但在Ubuntu上没有
- 与openCV的vs 2013中的lib链接
- 将代码升级到 Visual Studio 2010 后出现 odbcpp32.lib 链接错误
- 自制Lib链接错误
- MT4 DLL / TA-LIB链接器错误
- lnk1104:无法打开'LIBC.lib'链接
- Visual Studio 2008 - 尝试静态链接 VS9 Express 时出现C++ POCO lib 链接错误