我在 VS2010 上有两个项目的解决方案。
主要项目引用并依赖于第二个,它是作为静态库构建的。第二个使用不是在解决方案中构建的静态第三方库,但仅在第二个项目的链接器设置中引用。
如果我尝试生成解决方案,VS失败并指示他没有找到第三方库。我不明白为什么,因为第二个项目的编译静态库足够大并且似乎“包含”了第 3 方库。
到目前为止,我只看到两个解决我的问题的方法,我宁愿避免:
- 将第 3 方库添加到主项目的链接器设置中
- 在我的解决方案中包含整个 3rd-party 库并使用
有没有其他方法可以解决这个问题?
编辑:编译主项目时出现问题,编译器输出:链接:致命错误LNK1104:无法打开文件'wxbase29u.lib'(我在第二个项目中使用wxWidget)
EDIT2:我将 -verbose 选项用于链接,似乎对第 3 方库的引用实际上仍然存在于 Project2.lib 中:
Searching ..\MyAppConfig\Bin\Win32\Release\MyAppConfig.lib :
"public: static void __cdecl ConfigWindow::Open(void)" (?Open@ConfigWindow@@SAXXZ) found
Referenced in main.obj
Loaded MyAppConfig.lib(configWindow.obj)
/DEFAULTLIB:wxbase29u processed
/DEFAULTLIB:wxbase29u_net processed
/DEFAULTLIB:wxbase29u_xml processed
/DEFAULTLIB:wxregexu processed
/DEFAULTLIB:wxexpat processed
/DEFAULTLIB:wxjpeg processed
/DEFAULTLIB:wxpng processed
/DEFAULTLIB:wxtiff processed
/DEFAULTLIB:wxzlib processed
...
...
LINK : fatal error LNK1104: cannot open file 'wxbase29u.lib'
有趣的是,我什至不使用 Project2 中的其他 wxWidgets 库,但 Visual Studio 似乎正在搜索所有这些库:/