C++ 什么是与VC2008项目相关的C2471、C1083错误,以及如何纠正这些错误
我有一个非常复杂的VC2008项目。为了了解它的内部工作原理,我试图简化它,现在我得到了289个错误,大多数文件都有以下类型: 错误5错误C2471:无法更新程序数据库'c:\users\ryan\documents\visual studio 2008\projects\vc\myinfo\cli\debug\vc90.pdb'c:\users\ryan\documents\visual studio 2008\projects\vc\myinfo\cli\mediainfo\file\uuuu analyze\u buffer\u minimize.cpp 1 cli 错误6致命错误C1083:无法打开程序数据库文件:“c:\users\ryan\documents\visual studio 2008\projects\vc\myinfo\cli\debug\vc90.pdb”:没有这样的文件或目录c:\users\ryan\documents\visual studio 2008\projects\vc\myinfo\cli\mediainfo\file\uu Analysis\u buffer\u Minimizeizeze.cpp 1 cliC++ 什么是与VC2008项目相关的C2471、C1083错误,以及如何纠正这些错误,c++,visual-studio-2008,visual-c++,C++,Visual Studio 2008,Visual C++,我有一个非常复杂的VC2008项目。为了了解它的内部工作原理,我试图简化它,现在我得到了289个错误,大多数文件都有以下类型: 错误5错误C2471:无法更新程序数据库'c:\users\ryan\documents\visual studio 2008\projects\vc\myinfo\cli\debug\vc90.pdb'c:\users\ryan\documents\visual studio 2008\projects\vc\myinfo\cli\mediainfo\file\uuu
我的系统:win7/VS2008我在将VS2003.Net解决方案转换为在更高版本的IDE上运行时看到了相同的行为。我猜您的解决方案包含多个指向同一中间目录的项目。在VS2005和更高版本中,可以并行构建互不依赖的项目,这样,如果使用相同的工作目录,则可能会出现如下文件冲突
检查如下。在解决方案资源管理器中,右键单击其中一个失败的项目并选择“属性”。在配置属性->常规部分,确保每个项目都有不同的“中间目录”。请使用“重建解决方案”再次尝试您的构建,以清除所有内容。大多数情况下,当我收到“C2471:无法更新程序数据库”时,这是因为PDB文件由于某种原因被锁定。通常在我的例子中,这是因为我在另一个窗口中运行程序,该窗口将PDB文件加载到内存中
当这不是原因时,我发现重建可以神奇地解决问题。我自己也遇到过同样类型的错误,沮丧不已
我最终通过应用在这篇知识库文章中找到的Microsoft热修复程序修复了它:解决方案1:在解决方案中找到*.vcxproj文件,在文本编辑器中打开并搜索“DebugInformationFormat”并将其设置为“OldStyle”。重新加载项目并生成。如果解决方案中有多个项目,则所有*.vcxproj文件都需要进行此更改
您可以删除*.obj文件并重新生成解决方案,此问题可能会解决。下面的链接可能对您有所帮助-
撤消您所做的任何更改,错误就会消失。是的,这是显而易见的,但是如果你小心不要一次做太多的更改,那么弄清楚你做了什么来破坏项目应该很容易。不幸的是,你不能“撤消”对项目文件的更改,除非你能以某种方式用一个未破坏的副本替换你的工作副本,就像通过源代码管理一样。@ryanlancer-then@Brian和@Noah Roberts在评论中提出的建议,即放弃您的更改,并在每次更改后逐步重新实现它们,这是您最好的选择。如果您还没有获得原始项目和解决方案(gulp),那么您可以尝试使用“现有代码中的新项目”与现在的项目并排重新创建项目。但这很痛苦。请尝试杀死
mspdbsrv.exe
,然后重新启动IDE并重建。这个过程中可能有一个bug。这里提到了另一种可能性-尝试禁用预编译头-@ryanlancer:那么恐怕你别无选择,只能以某种方式放弃你的更改