【发布时间】:2015-11-03 12:26:11
【问题描述】:
我有多个 C++ 可执行程序,它们使用许多也用 C++ 编写的库(我有所有这些库的源代码)。
我面临的问题是:当可执行 EXE 包含一个 dll DLL 时,它们可能都依赖于其他 dll DLL1 和 DLL2:
EXE ----- DLL
| |
DLL1 DLL2
如果 DLL1 和 DLL2 是同一个库,而 DLL2 是 DLL1 的更新版本,我将无法链接和编译内容。
我该如何解决这个问题?由于向后兼容性问题,有时我不能只转储 DLL1 并保持最新。
【问题讨论】:
-
就个人而言,我的建议是避免整个混乱,只需将您的程序重新编译成独立的可执行文件。是的,它们会占用更多的磁盘空间,但是这些天,谁在乎呢?
-
鉴于您拥有所有内容的来源 - 而不是我在下面的复杂答案 - 实用的解决方案是重建包含版本号的 dll。然后exe会导入并使用“dll.1.0.dll”,而dll会导入使用“dll.2.0.dll”,每个人都可以存在于一个文件夹中。