【发布时间】:2015-05-18 14:42:27
【问题描述】:
我正在将整个 Visual Studio 解决方案从 wxWidgets-2.6.4 (A) 升级到 wxWidgets-3.0.2 (B)。有一个问题是因为一些项目使用 wxhttpengine-2.0 (Z),它不适用于高于 2.6.x 的 wxWidgets 版本。为了简化问题,我用字母 A、B 和 Z 标记了 3 个静态库。所以,我的解决方案包含 A 和 Z,Z 包含 A 的一部分,但我想在维护 Z 的同时使用 B 而不是 A,以便简化我的解决方案的代码。问题在于,仅仅这样做会导致错误 - LNK2005:已经在 httpengine.lib 中定义 - 用于 wxWidgets.3.0.2 静态库。链接器会发现 A 和 B 中的冲突符号,因为 Z 构建在 A 之上。
一般问题:如何将包含 Z 的项目从 A 升级到 B?
具体问题:是否可以在 Visual Studio 中指定我想先与 B 链接,然后与 Z 链接?
这是一个错误示例:
错误 1 错误 LNK2005: "public: class wxSize __thiscall wxWindowBase::GetBestSize(void)const " (?GetBestSize@wxWindowBase@@QBE?AVwxSize@@XZ) 已经定义在 httpengined.lib(proxysettingsdlg.obj) PATH\wxmsw30ud_core.lib(hidden_filename.obj)
【问题讨论】:
标签: visual-studio visual-c++ static-libraries wxwidgets upgrade