Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/visual-studio-2010/4.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C++ 项目参考和第三方库_C++_Visual Studio 2010_Static Libraries - Fatal编程技术网

C++ 项目参考和第三方库

C++ 项目参考和第三方库,c++,visual-studio-2010,static-libraries,C++,Visual Studio 2010,Static Libraries,我有一个关于VS2010的两个项目的解决方案 主项目引用并依赖于作为静态库构建的第二个项目。第二个使用静态第三方库,该库不是在解决方案中生成的,而是仅在第二个项目的链接器设置中引用 如果我尝试生成解决方案,VS将失败并指示他没有找到第三方库。我不明白为什么,因为第二个项目编译的静态库足够大,似乎“包含”了第三方库 到目前为止,我只看到两种解决我的问题的方法,我宁愿避免: 将第三方库添加到主项目的链接器设置中 在我的解决方案中包含整个第三方库,并使用 还有其他办法解决这个问题吗 编辑:编译主项目时

我有一个关于VS2010的两个项目的解决方案

主项目引用并依赖于作为静态库构建的第二个项目。第二个使用静态第三方库,该库不是在解决方案中生成的,而是仅在第二个项目的链接器设置中引用

如果我尝试生成解决方案,VS将失败并指示他没有找到第三方库。我不明白为什么,因为第二个项目编译的静态库足够大,似乎“包含”了第三方库

到目前为止,我只看到两种解决我的问题的方法,我宁愿避免:

  • 将第三方库添加到主项目的链接器设置中
  • 在我的解决方案中包含整个第三方库,并使用
  • 还有其他办法解决这个问题吗

    编辑:编译主项目时出现问题,编译器输出:链接:致命错误LNK1104:无法打开文件“wxbase29u.lib”(我在第二个项目中使用wxWidget)

    EDIT2:我打开了链接的-verbose选项,看起来对第三方库的引用实际上仍然存在于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似乎正在搜索所有这些库://

    以下是您应该如何设置项目:

    项目1(主要)

    项目2

    Additional dependencies: ThirdParty.lib
    
    构建顺序:项目2->项目1


    如果您的项目是这样设置的,并且没有链接,那么这就意味着库的路径设置不正确(在“附加包含目录”下)。因此,只需确保正确设置了项目的其他依赖项,并且include目录指向所需库所在的位置。

    您可能希望将一些编译器和链接器输出以及正在链接的3个组件的名称放在此处-这可能有助于引出更好的解决方案:)VS fails什么时候建主项目还是第二个项目?@Lanaru:对不起,我忘了that@w00te我不知道这些名称是否有用,但我会尽量更明确:)如果主项目未使用wxbase29u.lib,请将其从主项目中的其他依赖项中删除。如果主项目使用它,请确保您指向“additional include directories”中的正确目录,谢谢提示!不幸的是,这个设置给了我同样的结果(几乎和我一样,只是链接Project2.lib,而不是在引用中添加Project2)。另外:我试图从Project1 lib依赖项中删除Project2.lib,然后它只是要求Project2未解析的符号(这是正确的)。如果我重新添加Project2.lib,它会再次请求ThirdParty.lib。。。
    Additional dependencies: ThirdParty.lib