C++ 在visual Studio 2012中重建时出现奇怪的链接错误

C++ 在visual Studio 2012中重建时出现奇怪的链接错误,c++,visual-studio-2012,linker,C++,Visual Studio 2012,Linker,我有一个很奇怪的问题。我在VS2012中有一个与另一个库静态链接的项目。 如果我建立项目,一切都很好。 然而,如果我重建项目,它将失败与链接问题。 lib是编译的,我在构建期间不编译它。 如果我清理所有东西或在上一次构建的基础上构建/重建,则没有区别。 建设工程,重建-不是 有人能给我一个线索吗?这两个命令有什么不同?我甚至不知道如何开始调查这个问题 补充: 对于所有回答的人,你是在试图向我解释建造和重建之间的区别。谢谢,但我知道。你忽略了我之前解释过的事实: 我可以完全清理以前的结果,删除Ou

我有一个很奇怪的问题。我在VS2012中有一个与另一个库静态链接的项目。 如果我建立项目,一切都很好。 然而,如果我重建项目,它将失败与链接问题。 lib是编译的,我在构建期间不编译它。 如果我清理所有东西或在上一次构建的基础上构建/重建,则没有区别。 建设工程,重建-不是

有人能给我一个线索吗?这两个命令有什么不同?我甚至不知道如何开始调查这个问题

补充:

对于所有回答的人,你是在试图向我解释建造和重建之间的区别。谢谢,但我知道。你忽略了我之前解释过的事实:

我可以完全清理以前的结果,删除OutDir,删除IntDir,删除编译生成的所有内容。仍然-构建工作,而不是重建

在上面解释的案例中-如果您第一次构建,那么构建和重建之间的区别是什么

我没有发布错误的原因是,这些只是告诉我.lib丢失的链接错误。但显然不是这样

以下是示例:

1> C:\ProgramFiles(x86)\Microsoft Visual Studio 11.0\VC\include\sal.h(2872):警告RC4005:“\u useHeader”:重新定义 1>
1> C:\ProgramFiles(x86)\Microsoft Visual Studio 11.0\VC\include\sal.h(2882):警告RC4005:“\u on\u 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\Products\WaveShell-DAE.exp 1> DefaultSwap.obj:错误LNK2019:未解析的外部符号\u ASI_UnregisterCustomByteSwapper@4在函数_RemoveByteSwapper中引用 1> DefaultSwap.obj:错误LNK2019:未解析的外部符号\u ASI_RegisterCustomByteSwapper@8在函数_RegisterByteSwapper中引用 1> PlugInLib.lib(PlugInUtils.obj):错误LNK2001:未解析的外部符号\u imp_FicGestalt@8 1> PlugInLib.lib(CDSPProcess.obj):错误LNK2001:未解析的外部符号\u imp_FicGestalt@8 1> PlugInLib.lib(CAdaptorPlugIn.obj):错误LNK2001:未解析的外部符号\u imp_FicGestalt@8 1> CShellProcessGroup.obj:错误LNK2019:未解析的外部符号\u imp_FicGestalt@8在函数“public:u thiscall CShellProcessGroup::CShellProcessGroup(void)”中引用(??0ShellProcessGroup@@QAE@XZ) 1> CEffectTypeRTAS.obj:错误LNK2001:未解析的外部符号\u imp_FicGestalt@8 1> PlugInLib.lib(CProcessGroupInterface.obj):错误LNK2001:未解析的外部符号\u imp_FicGestalt@8 1> PlugInLib.lib(CProcessGroup.obj):错误LNK2001:未解析的外部符号\u imp_FicGestalt@8

也许知道在运行构建(非重建)时,我会收到以下警告会有所帮助:

1> C:\ProgramFiles(x86)\Microsoft Visual Studio 11.0\VC\include\sal.h(2872):警告RC4005:“\u useHeader”:重新定义 1>
1> C:\ProgramFiles(x86)\Microsoft Visual Studio 11.0\VC\include\sal.h(2882):警告RC4005:“\u on\u 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\Products\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”处未找到;链接对象,好像没有调试信息 1> PlugInLib.lib(CDSP.obj):警告LNK4099:PDB“vc110_ib_3.PDB”与“PlugInLib.lib(CDSP.obj)”一起或在“D:\p4client\ProAudio\dev_main\ProAudio\VisualStudioBuildProducts\WaveShell DAE\Win32\Debug\vc110_ib_3.PDB”处未找到;链接对象,好像没有调试信息 1> PlugInLib.lib(CDSPUtils.obj):警告LNK4099:PDB“vc110_ib_4.PDB”与“PlugInLib.lib(CDSPUtils.obj)”一起或在“D:\p4client\ProAudio\dev_main\ProAudio\VisualStudioBuildProducts\WaveShell DAE\Win32\Debug\vc110_ibu 4.PDB”处找不到;链接对象,好像没有调试信息


谢谢

Build表示只编译和链接自上次生成以来已更改的源文件,而Rebuild表示编译和链接所有源文件,无论它们是否更改


构建是正常的事情,而且速度更快。有时,项目目标组件的版本可能会不同步,而要使构建成功,必须进行重建。实际上,您永远不需要清理。

构建意味着只编译和链接自上次构建以来已更改的源文件,而重建意味着编译和链接所有源文件,无论它们是否更改


构建是正常的事情,而且速度更快。有时,项目目标组件的版本可能会不同步,而要使构建成功,必须进行重建。实际上,您永远不需要清理。

'Build'将进行增量构建,基本上是通过解决方案中的每个项目,查看自上次构建以来是否有更改,如果有,请重新构建

“重建”将对所有内容执行清理,并从头开始构建所有内容


编辑:一个更详细的答案“构建”将进行增量构建,基本上贯穿解决方案中的每个项目,查看自上次构建以来是否有更改,如果有,请重新构建

“重建”将对所有内容执行清理,并从头开始构建所有内容


编辑:如果静态库是与项目相同解决方案中的另一个项目,则提供更详细的答案