ste*_*bot 10 debugging visual-studio-2010 precompiled-headers visual-c++
我正在尝试升级旧解决方案以使用VS2010(VC100).
我有它的设置,以便stdafx.cpp将从stdafx.h创建一个预编译的头stdafx.pch.然后指示包含stdafx.h的所有其他.cpp文件使用预编译头.
这些帖子帮助我做到了这一点:
现在,当我在发布模式下构建时,一切都很好.但是,当我尝试在调试模式下构建时,我得到了一大堆错误:
错误1错误C2859:[已删除]\debug\vc100.idb不是创建此预编译头时使用的idb文件,请重新创建预编译头.
我相信这个.idb文件是Visual Studio创建的中间调试文件.
为什么我收到此错误?换句话说,为什么它在创建预编译头时不使用此.idb文件?
我不确定您需要什么进一步的信息才能给我回答,所以请问我是否需要提供更多信息.
多亏了一位同事,我才得到了答案。
问题在于stdafx.cpp将Debug Information Format(调试信息格式)设置为Program Database(/ Zi),而其他所有文件都将它设置为Program Database for Edit and Continue(/ ZI)。
将它们全部更改为Program Database for Edit and Continue(/ ZI)并进行完全重建可以解决此问题。
我想升级会以某种方式搞砸了。
在编译项目时,我在 VS2005 中遇到了此错误,其中的文件与项目的实际输出文件不同(即$(ProjectName)未设置为默认值,而是设置为其他文件,例如)Linker > Output File$(OutDir)\$(ProjectName).exe$(OutDir)\$(ProjectName)-custom_postfix.exe
在这种情况下,显然只有在执行仅重建项目时,vc80.pdb似乎才被错误地查找。
对我有帮助的是额外设置C/C++ > Output Files > Progam Database File Name为$(IntDir)\$(TargetName).pdb. (而不是默认的vc80.pdb)