修复MSVC编译器错误C1074:非法扩展

时间:2012-08-15 02:26:24

标签: c visual-studio visual-c++ compiler-errors

在Windows 7 SP1(64位)下使用Visual Studio 2003 Professional,从命令行编译,我收到致命错误C1074:IDB is illegal extension for PDB file。关于此错误的文档是sparse,以便轻描淡写。令人难以置信的奇怪的是,在同一台计算机上使用相同的构建脚本但在不同的帐户下不会产生此错误。

我的第一个猜测是环境变量中的某些内容导致了这种冲突,但是对于这两个帐户在它们之间进行区分,并且将PATH和INCLUDE修改为相同并不能解决错误。

有没有人对此错误有任何修复,或者知道实际触发它的是什么?所有文件都没有使用任何类型的/Z开关进行编译,因此据我所知,实际上不应生成PDB个文件(并且在成功构建时,不会{{1生成OR IDB文件,我可以看到。)

3 个答案:

答案 0 :(得分:5)

我遇到了与Windows 7 x64和Visual Studio 2005 Pro(SP1)上的解决方案相同的问题。

症状

我正在使用Visual Assist X(目前正在构建2007)。因此,在我的情况下,我需要做的就是通过将feacp.dl内的C:\Program Files (x86)\Microsoft Visual Studio 8\VC\vcpackages重命名为其他内容来禁用IntelliSense。这解决了启动时的崩溃问题(可能与OP遇到的问题无关)。

之后,Debug配置为我提供了大量的

fatal error C1033: cannot open program database ''

错误,每个文件由cl.exe编译一个。

我得到了Release配置

fatal error C1074: 'IDB' is illegal extension for PDB file: <filename>

即。 OP所要求的那个。

解决方案

我为VS 2003报告了或多或少偶然发现了解决方案elsewhere。从某种意义上说,它与Luke's answer相反。

  

致命错误C1074

     

如果Windows 7计算机有此错误,则报告此错误   Windows XP兼容模式已打开。要解决此错误,请转弯   关闭Windows XP兼容模式并重新编译解决方案。

     

如果您有其他问题,请查看MSDN论坛以获取更多帮助。它的   不是源它听起来更像你的VS设置。我从来没有   我之前遇到过这个问题所以我没什么帮助。

这促使我查看devenv.exe的设置(在C:\Program Files (x86)\Microsoft Visual Studio 8\Common7\IDE下)。它看起来像这样:

Current user settings for devenv.exe

在我的情况下,它被设置为与Windows 2003 Server兼容,如上面的屏幕截图所示。 但是,必须关闭兼容性!(未选中复选框)

还要确保通过单击第二个突出显示的按钮来检出并更正所有用户的设置(如果您尚未运行特权,则会显示UAC提示)。

All user settings for devenv.exe

这解决了我的问题,我可以避免一直运行VS 2005 Pro。

答案 1 :(得分:2)

我从MSDN上收集的有关类似问题的信息,但不完全相同:

由于它编译时除了用户帐户之外没有其他任何变化,我相信它可能与用户帐户权限有关。检查并查看VS设置和Windows用户设置中用户权限之间的差异。

我首先要尝试关闭VS,使用Run As Administrator使用该帐户重新打开不会编译并查看会发生什么。

答案 2 :(得分:0)

为了分享我的一些麻烦的解决方案,并希望将它们留给其他人,我在尝试在Win8-x64机器内的VS2005 / SP1中编译遗留解决方案时遇到了同样的问题。 无论我试图做什么,它总是在那里抱怨非法的IDB扩展......

另一方面,同样的解决方案在我以前的Win7-x64框中完美编译,当运行“提升”时。

经过多次努力,我发现我必须使用Win8“程序兼容性助手(或英文版中指定的任何内容 - 我的操作系统使用不同的语言)并告诉它在Win7高架环境中运行VS2005 。在那之后,晦涩的“IDB非法”错误立即消失了!

希望这会帮助某人=)