我在VS2010上有两个项目的解决方案。
主项目引用并依赖于第二个,它是作为静态库构建的。第二个使用静态第三方库,该库不在解决方案中构建,但仅在第二个项目的链接器设置中引用。
如果我尝试生成解决方案,VS会失败,并表示他没有找到第三方库。我不明白为什么,因为第二个项目的编译静态库足够大,似乎“包含”第三方库。
到目前为止,我只看到了我的问题的两个解决方案,我宁愿避免:
有没有其他方法可以解决这个问题?
编辑:编译主项目时出现问题,编译器输出:LINK:致命错误LNK1104:无法打开文件'wxbase29u.lib'(我是在我的第二个项目中使用wxWidget)
EDIT2:我把-verbose选项用于链接,看起来第三方库的引用实际上仍然存在于Project2.lib中: / p>
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似乎正在搜索所有这些库:/
答案 0 :(得分:2)
以下是您应该如何设置项目:
项目1(主要)
Additional dependencies: Project2.lib
项目2
Additional dependencies: ThirdParty.lib
构建顺序:项目2 - >项目1
如果您的项目是这样设置的并且它没有链接,那么它只是意味着未正确设置库的路径(在“其他包含目录”下)。因此,只需确保项目的其他依赖项已正确设置,并且include目录指向您需要的库所在的位置。