num*_*l25 41 c c++ visual-studio-2008 visual-studio
我复制了一个现有项目并重命名了该文件夹.现在,当我尝试编译应用程序时,我收到此错误
__PRE__
如果我单击是,它编译并运行正常.但现在我必须处理这个消息.只是好奇我在项目属性中改变了什么来让它停下来.
Nic*_*ume 66
您可能已停用项目的调试信息:
重建你的项目并重试,它现在应该在没有消息的情况下运行:)
Bri*_*ndy 30
主要原因是你没有匹配的pdb和exe.
一些可能的解决方
小智 10
这种情况经常发生在我身上,在调试代码和进行更改时,似乎visual studio缓存了pdb信息,有时它会卡住.执行重建解决方案,删除pdb并创建新的解决方案并不能解决问题.
当然,我确实有生成调试信息及其所需的全部内容,特别是因为在调试代码几次时会发生这种情况.
Visual Studio似乎对内存中的pdb感到满意,并拒绝更新它,无论时间戳或pdb中的大小更改如何.
重置此操作的唯一方法是退出Visual Studio(IDE)并再次重新启动它.
在极少数情况下,IDE可能仍在后台运行(进程资源管理器在那里显示)并且可能保持文件句柄处于打开状态.您可以在重新启动IDE之前终止该进程.
祝好运
我刚在VS2012遇到这个错误.它肯定是由Visual Studio中的一个错误引起的,当主项目的本地PDB文件与整个可执行文件的最终PDB文件同名时(即使这两个文件位于不同的目录中!
考虑这个例子.
解决方案包括三个项目:main,a,和b.main是可执行文件的顶级项目,a而且b是链接到的库main.
在所有三个项目中,$(IntDir)变量设置为$(SolutionDir)\$(Configuration)\$(ProjectName)\.这意味着项目main将其中间文件转储到Debug\main\项目a- Debug\a\等等.
在C/C++ -> Output Files设置中,所有三个项目都Program Database File Name设置了值$(IntDir)$(TargetName).pdb.这意味着该项目main产生的本地PDB文件Debug\main\main.pdb,项目b的Debug\b\b.pdb等等.
最后,在Linker -> Debugging项目设置main中将Generate Program Database File值设置为$(OutDir)$(TargetName).pdb.这意味着将生成整个可执行文件的全局PDB文件Debug\main.pdb.
请注意,在此设置中,每个PDB文件都在其自己的单独目录中生成.
在此设置中,如果尝试在调试器下运行程序,则无法找到调试信息或与错误不匹配.如果您查看Debug\main.pdb文件(将存在),您会注意到它与Debug\main\main.pdb文件完全相同!也就是说,本地PDB main设法覆盖了应该是最终可执行文件的全局PDB.即调试者抱怨PDB文件"错误"是正确的.这确实是错的.
同样,在上面的设置中,最终的全局PDB以某种方式被顶级项目的本地PDB覆盖.我不知道为什么会这样.这似乎是一个错误.(请注意,即使这些PDB文件具有相同的名称,它们也会在不同的目录中生成,即它们不应该冲突.)
解决此问题的解决方法是为项目的本地PDB main指定其他名称.例如,刚去C/C++ -> Output Files的main项目和变化Program Database File Name值$(IntDir)$(TargetName)_local.pdb(或者$(IntDir)12345.pdb,如果你愿意的话).这将消除冲突并解决问题.