我有一个很奇怪的问题。我在VS2012中有一个与其他库静态链接的项目。 如果我建立项目一切都很好。 但是,如果我重建项目,它将失败并出现链接问题。 这个lib是编译的,我不在编译期间编译它。 如果我清除所有内容或在先前的构建之上构建/重建,这并没有什么不同。 建造作品,重建 - 不是!在Visual Studio 2012中重建时出现奇怪的链接错误
任何人都可以给我至少一条线索 - 这两条命令有什么不同?我甚至不知道如何开始调查问题。
补充:
要全部回答的人 - 你是试图解释我的构建和重建之间的差异。谢谢,但我知道。你忽略了我之前解释过的事实:
我可以完全清除以前的结果,删除OutDir,删除IntDir,删除编译产生的所有东西。仍然 - 建立工作,不重建。
在上面解释的案例中 - 如果您第一次构建,构建和重建有什么区别?
我没有发布错误的原因是那些只是链接错误告诉我.lib丢失。虽然它显然不是。
这里是例子:
1> C:\ Program Files文件(x86)的\微软的Visual Studio 11.0 \ VC \ \包括sal.h(2872):警告RC4005: '_ useHeader' :重新定义 1>
1> C:\ Program Files文件(x86)的\微软的Visual Studio 11.0 \ VC \ \包括sal.h(2882):警告RC4005: ' _on_failure':重新定义 1>
1>创建库D:\ p4client \ ProAudio \ dev_main \ ProAudio \ XPlatform .. \ VisualStudioBuildProducts \ WaveShell-DAE \ Win32 \ Debug \ Products \ WaveShell-DAE.lib和对象D:\ p4client \ Pro Audio \ dev_main \ ProAudio \ XPlatform .. \ VisualStudioBuildProducts \ WaveShell-DAE \ Win32 \ Debug \ Products \ WaveShell-DAE.exp 1> DefaultSwap.obj:error LNK2019:无法解析的外部符号_ASI_UnregisterCustomByteSwapper @ 4在函数中引用_RemoveByteSwapper 1> DefaultSwap.obj:错误LNK2019:解析外部符号_ASI_RegisterCustomByteSwapper @ 8在功能_RegisterByteSwapper引用 1> PlugInLib.lib(PlugInUtils.obj):错误LNK 2001:解析外部符号_ 小鬼 _FicGestalt @ 8 1> PlugInLib.lib(CDSPProcess .OBJ):错误LNK 2001:解析外部符号_ 小鬼 _FicGestalt @ 8 1> PlugInLib.lib(CAdaptorPlugIn.obj):错误LNK 2001:解析外部符号_ imp的 _FicGestalt @ 8 1> CShellProcessGroup.obj:错误LNK2019:解析外部符号_ 小鬼 _FicGestalt @ 8函数引用 “公共:__thiscall CShellProcessGroup :: CShellProcessGroup(无效)”(?? 0CShellProcessGroup @@ @ QAE XZ) 1> CEffectTypeRTAS.obj:错误LNK2001:解析外部符号_ 小鬼 _FicGestalt @ 8 1> PlugInLib.lib(CProcessGroupInterface.obj):错误LNK 2001:解析外部符号_ 小鬼 _FicGestalt @ 8 1> PlugInLib。LIB(CProcessGroup.obj):错误LNK2001:解析外部符号_ 小鬼 _FicGestalt @ 8
也许这将有助于知道,在运行建立(不重建)我会得到以下警告:
1> C:\ Program Files文件(x86)的\微软的Visual Studio 11.0 \ VC \ \包括sal.h(2872):警告RC4005: '_ useHeader':重新定义 1>
1> C:\ Program Files文件(x86)的\微软的Visual Studio 11.0 \ VC \包括\ sal.h(2882):警告RC4005: ' _on_failure':重新定义 1>
1>创建库D:\ p4client \ ProAudio \ dev_main \ ProAudio \ XPlatform .. \ VisualStudioBuildProducts \ WaveShell-DAE \ Win32 \ Debug \ Products \ WaveShell-DAE.lib和对象D:\ p4client \ ProAudio \ dev_main \ ProAudio \ XPlatform .. \ VisualStudioBuildProducts \ WaveShell-DAE \的Win32 \调试\产品\ WaveShell-DAE.exp 1> PlugInLib.lib(C321ChipDSP.obj):警告LNK4099:PDB 'vc110_ib_2.pdb' 不是用“PlugInLib找到。 lib(C321ChipDSP.obj)'或'D:\ p4client \ ProAudio \ dev_main \ ProAudio \ VisualStudioBuildProducts \ WaveShell-DAE \ Win32 \ Debug \ vc110_ib_2.pdb';警告LNK4099:PDB 'vc110_ib_3.pdb' 没有与 'PlugInLib.lib(CDSP.obj)' 或“d发现:就好像没有调试信息 1> PlugInLib.lib(CDSP.obj)链接对象\ p4client \专业音响\ dev_main \专业音响\ VisualStudioBuildProducts \ WaveShell-DAE \的Win32 \调试\ vc110_ib_3.pdb';警告LNK4099:PDB 'vc110_ib_4.pdb' 没有与 'PlugInLib.lib(CDSPUtils.obj)' 或“d发现:就好像没有调试信息 1> PlugInLib.lib(CDSPUtils.obj)链接对象\ p4client \专业音响\ dev_main \专业音响\ VisualStudioBuildProducts \ WaveShell-DAE \的Win32 \调试\ vc110_ib_4.pdb';如同没有调试信息一样链接对象
谢谢!
你可以退出你的问题,包括错误重建报告吗? – simonc 2013-04-09 14:32:37
什么是错误? – 2013-04-09 14:35:57
针对您的特定问题,请发布您遇到的错误。就目前而言,你的问题似乎是“Build和Rebuild有什么区别?”这可以回答[这里](http://stackoverflow.com/questions/3095901/difference-between-build-solution-rebuild-solution-and-clean-solution-in-visua) – quandrei 2013-04-09 14:45:06