我的 .exe 项目依赖于外部静态库 A.lib 和 B.lib。
问题:库 B 内部也使用库 A 并导出其符号。但是使用的 A 版本与 A.lib 不同 - 并且与我的应用程序不兼容。
将我的应用程序与 A.lib 和 B.lib 链接时,B.lib 中包含的 A 符号隐藏了 A.lib 中的正确符号。虽然链接成功,但我的应用程序无法正常工作。
将 B.lib 的所有用法分解到另一个静态库 C.lib 中并没有帮助:C.lib 仍然从 B.lib 导出所有符号。
如果没有以下变通办法,这可以解决吗?
动态链接。
用我的 A.lib 版本重新构建 B。(我可以访问 B 的来源。)
这可能会在 B 中引起未知的副作用。