致命错误 C1001:内部编译器错误(编译器文件“msc1.cpp”,第 1794 行)

问题描述 投票:0回答:6

我尝试使用 Visual Studio 6 SP6 编译一个项目并得到以下结果:

usbcore.h(18) : fatal error C1001: INTERNAL COMPILER ERROR
    (compiler file 'msc1.cpp', line 1794)
     Please choose the Technical Support command on the Visual C++
     Help menu, or open the Technical Support help file for more information

usbcore.h 第 18 行包含 include 指令:

18: #include "usbiface.h"

空或不存在的 usbiface.h 会产生相同的错误。我评论了这一行并得到了相同的错误,但对于下一个包含文件。

总结一下: 每个引用公共项目头的

#include
指令都会发生编译器错误。

c++ include visual-studio-6 internal-compiler-error
6个回答
3
投票

我找出了导致该错误的原因。其中一个包含路径(使用 /I 开关传递给编译器)有一个尾部反斜杠。

编译器命令行是:

CPP /nologo /MT /W3 /GX /Zi /Od /I "$(ZLIB_PATH)" /I "..\headers"

ZLIB_PATH
后面有一个反斜杠。删除反斜杠解决了问题。


3
投票

就我而言,将标签 WholeProgramOptimizationtrue 从 true 更改为 false 解决了问题。


1
投票

当我在 ctor 的定义中省略括号时,我遇到了这个问题。这是一个愚蠢的错误,但检查所有这些艰难的修复是非常费力的。所以我只是提供这种可能性。我没想到会出现内部编译器错误。


0
投票

就我而言(VC6.0 SP6a),这是由于令人困惑的

using
声明造成的。编译器似乎无法确定我是在定义
Foo::Bar
还是
Bar
(在全局命名空间中)。

namespace Foo {
    class Bar;
}

using Foo::Bar;

class Bar {
};

0
投票

就我而言,我必须关闭“生成浏览信息”选项才能避免这种情况。 (项目设置\C/C++\常规)


0
投票

就我而言,我尝试将 NET4.8 项目迁移到 NET7。在 C++/CLI 项目中切换 CLR 版本后,我开始看到错误:

1>C:\Program Files\dotnet\packs\Microsoft.NETCore.App.Ref\7.0.12\ref\net7.0\mscorlib.dll : fatal  error C1001: Internal compiler error.
1>(compiler file 'msc1.cpp', line 1639)

为了解决这个问题,我遵循了 将 c++/cli 项目从 .net 4.7 迁移到 .netcore 3.1 的问题

从 .vcxproj 中删除

<CompileAsManaged>true</CompileAsManaged>
有助于解决该问题。

© www.soinside.com 2019 - 2024. All rights reserved.