编译器致命错误 C999 - C1999

文档这一部分中的文章解释了由 Microsoft C/C++ 编译器生成的错误消息的子集。

重要

Visual Studio 编译器和生成工具可报告多种类型的错误和警告。 发现错误或警告后,生成工具可做出有关代码意向的假设并尝试继续,因此,可能会同时报告更多问题。 如果工具做出错误假设,则后续错误或警告可能不适于你的项目。 纠正项目中的问题时,请始终先纠正报告的第一个错误或警告,然后在通常情况下重新生成。 一个修补程序可能会使许多后续错误消失。

若要在 Visual Studio 中获取有关特定诊断消息的帮助内容,请在“输出”窗口中选择该消息,然后按 F1 键。 Visual Studio 会打开该错误的文档页(如果存在)。 还可以使用页面顶部的搜索工具查找有关特定错误或警告的文章。 或者,按工具浏览错误和警告列表,并在此页面上的内容列表中键入内容。

注意

并非所有 Visual Studio 错误或警告均有记录。 在许多情况下,诊断消息将提供所有可用信息。 如果在使用 F1 时登陆此页,并且认为错误或警告消息需要额外的解释,请告诉我们。 可以使用此页面上的反馈按钮在 GitHub 上提出文档问题。 如果认为错误或警告是错误的,或者发现了工具集的其他问题,请在开发者社区网站上报告产品问题。 还可以在 IDE 中发送反馈并输入 bug。 在 Visual Studio 中,转到菜单栏并选择“帮助”>“发送反馈”>“报告问题”,或者使用“帮助”>“发送反馈”>“发送建议”提交建议

可以在 Microsoft Learn Q&A 论坛上查找有关错误和警告的其他帮助。 或者,在 Visual Studio C++ 开发者社区网站上搜索错误或警告编号。 还可以搜索 Stack Overflow 以查找解决方案。

有关指向其他帮助和社区资源的链接,请参阅 Visual C++ 帮助和社区

错误消息

错误 Message
错误 C999 未知消息
请在 Visual C++ 帮助菜单上,选择技术支持命令,或打开技术支持帮助文件了解详细信息
错误 C1000 未知的严重错误
请在 Visual C++ 帮助菜单上,选择技术支持命令,或打开技术支持帮助文件了解详细信息
错误 C1001 编译器中发生了内部错误。
(编译器文件“file”中的第 number行)
若要解决此问题,请尝试简化或更改以上所列出位置附近的程序。 请在 Visual C++ 帮助菜单上,选择技术支持命令,或打开技术支持帮助文件了解详细信息
错误 C1002 在第 2 遍中编译器的堆空间不足
错误 C1003 错误计数超过 number;正在停止编译
错误 C1004 发现意外的文件尾
错误 C1005 字符串过大,无法缓冲
错误 C1006 编译器中间文件上的写入错误
错误 C1007 无法识别的标志“string”(在“option”中)
错误 C1008 没有指定输入文件
错误 C1009 编译器限制: 宏嵌套太深
错误 C1010 查找预编译头时意外的文件尾。 是否忘记将 "#include <file>" 添加到源中?
错误 C1011 找不到标准模块接口。 是否在 VS 安装程序中安装 C++ 模块功能的库部分?
错误 C1012 括号不匹配:缺少“character
错误 C1013 编译器限制: 左括号太多
错误 C1014 包含文件太多:深度 = number
错误 C1015 标头名称 "header-name" 和" header-name" 标识相同的标头,不能同时用作 /headerUnit:quoted/headerUnit:angle 参数; 请仅提供一次此标头名称
错误 C1016 #ifdef/#ifndef 应输入标识符
错误 C1017 无效的整数常量表达式
错误 C1018 意外的 #elif
错误 C1019 意外的 #else
错误 C1020 意外的 #endif
错误 C1021 无效的预处理器命令“string
错误 C1022 应有 #endif
错误 C1023 file”:pch 存在意外错误,请尝试重新生成 pch
错误 C1024 (已过时) 符号太多
错误 C1025 嵌套 Lambda 太多
错误 C1026 分析器堆栈溢出,程序太复杂
错误 C1027 (已过时) 创建和使用预编译标头时的 /Ym 值不一致
错误 C1030 根据调用约定,函数签名中不允许使用 WMMX 类型
错误 C1032 __eabi 需要 VFP 代码生成 (/QRfpe-)
错误 C1033 无法打开程序数据库“file
错误 C1034 file:不包括路径集
错误 C1035 表达式太复杂;简化表达式
错误 C1036 无法覆盖早期的程序数据库格式,请删除“file”并重新编译
错误 C1037 无法打开对象文件“file
错误 C1038 (已过时) 编译器限制: "function": 控制流状态太复杂; 请简化函数
错误 C1039 内部类型参数超出调用约定允许的数目
错误 C1040 缩略图模式中不允许使用内部函数或类型
错误 C1041 无法打开程序数据库 "file"; 如果要将多个 CL.EXE 写入同一个 .PDB 文件,请使用 /FS
错误 C1042 无法打开编译器中间文件,没有这样的文件或目录
错误 C1043 无法打开编译器中间文件
错误 C1044 用于编译器中间文件的磁盘空间不足
错误 C1045 编译器限制: 链接规范嵌套太深
错误 C1046 编译器限制: structure 嵌套太深
错误 C1047 对象或库文件“file”是使用比创建其他对象所用编译器旧的编译器创建的;请重新生成旧的对象和库
错误 C1048 未知选项“string”(在“option”中)
错误 C1049 无效的数值参数“value
错误 C1051 程序数据库文件“file”具有过时的格式,将其删除并重新编译
错误 C1052 程序数据库文件 "filename" 由链接器使用 /DEBUG:fastlink 生成; 编译器无法更新此类 PDB 文件; 请将其删除或使用 /Fd 指定其他 PDB 文件名
错误 C1053 function”:函数太大
错误 C1054 编译器限制: 初始值设定项嵌套太深
错误 C1055 编译器限制: 超出键范围
错误 C1056 无法更新 "object-file" 中的时间日期戳字段; 错误代码 error-code
错误 C1057 宏扩展中遇到意外的文件结束
错误 C1058 编译器限制: 符号 "symbol-name" 上的特性过多
错误 C1059 (已过时) 编译器的堆空间即将不足
错误 C1060 编译器的堆空间不足
错误 C1061 编译器限制: 块嵌套太深
错误 C1063 编译器限制: 编译器堆栈溢出
错误 C1064 编译器限制: 标记已溢出内部缓冲区
错误 C1065 编译器限制: 超出标记范围
错误 C1067 编译器限制: 已超出类型记录的 64K 大小限制
错误 C1068 无法打开文件“file
错误 C1069 无法读取编译器命令行
错误 C1070 文件 "file" 中的 #if/#endif 对不匹配
错误 C1071 在注释中遇到意外的文件结束
错误 C1073 (已过时) 涉及增量编译的内部错误 (编译器文件 "file" 中的第 number 行)
错误 C1074 “IDB”是 PDB 文件 file的非法扩展名
错误 C1075 左侧的 token 与文件结尾不匹配
错误 C1076 编译器限制: 达到内部堆限制; 使用 /Zm 指定更高的限制
错误 C1077 编译器限制:不能有 number 个以上的命令行选项
错误 C1079 (已过时) 编译器限制: 超出 PCH 文件大小限制
错误 C1080 编译器限制:命令行选项超出 number 个字符的限制
错误 C1081 file”:文件名太长
错误 C1082 无法关闭 type 文件:“file”: message
错误 C1083 无法打开 type 文件:“file”: message
错误 C1084 无法读取 type 文件:“file”: message
错误 C1085 无法写入 type 文件:“file”: message
错误 C1086 无法查找 type 文件:“file”: message
错误 C1087 无法告知 type 文件:“file”: message
错误 C1088 无法刷新 type 文件:“file”: message
错误 C1089 无法截断 type 文件:“file”: message
错误 C1090 PDB API 调用失败,错误代码“code”:“message
错误 C1091 编译器限制:字符串长度超过 number 个字节
错误 C1092 “编辑并继续”不支持对数据类型的更改;需要生成
错误 C1093 API 调用 "function" 对 "HRESULT" 失败: "description"
错误 C1094 "-Zmnumber": 命令行选项与用于生成预编译头 ("-Zmnumber") 的值不一致
错误 C1098 版本与“编辑并继续”引擎不匹配
错误 C1099 “编辑并继续”引擎正在终止编译
错误 C1100 无法初始化 OLE: error
错误 C1101 无法创建特性“identifier”的处理程序
错误 C1102 无法进行初始化: error
错误 C1103 导入 progid 时遇到错误:“message
错误 C1104 导入 libid 时遇到错误:“message
错误 C1105 消息: HRESULT 错误
错误 C1107 未能找到程序集 "assembly": 请使用 /AI 或通过设置 LIBPATH 环境变量指定程序集搜索路径
错误 C1108 无法找到 DLL:“file
错误 C1109 无法在 DLL“file”中找到“symbol
错误 C1110 嵌套的模板/泛型定义太多
错误 C1111 模板/泛型参数太多
错误 C1112 编译器限制:“number”个过多宏参数,仅允许使用“number”个
错误 C1113 在 "file" 上 #using 失败
错误 C1114 "file": WinRT 不支持托管程序集的 #using
错误 C1115 嵌套 Lambda 太多
错误 C1116 导入模块/标头单元 "name" 时发生不可恢复的错误。 使用参数 "argument-list" 的 "primary-template" 专用化
错误 C1117 导入模块/标头单元 "name" 时发生不可恢复的错误: 已定义符号 "symbol-name"
错误 C1118 无法在对象文件 "object-file" 中展开 file-type 文件名中的环境变量 variable-name
错误 C1119 从模块 "module-name" 导入符号 "symbol-name" 时发生不可恢复的错误
错误 C1120 对 "function" 调用 GetProcAddress 失败
错误 C1121 调用 CryptoAPI 失败
错误 C1126 自动分配超过 size
错误 C1127 Operation 需要 option
错误 C1128 节数超过对象文件格式限制: 请使用 /bigobj 进行编译
错误 C1189 #error: message
错误 C1190 托管目标代码需要 "/clr" 选项
错误 C1191 只能在全局范围内导入“file
错误 C1192 在 "file" 上 #using 失败
错误 C1193 file(line) 中预期的错误未出现
错误 C1194 (已过时) 未达到 file(line) 中预期的检查点 "name"
错误 C1195 在同一命令行上使用 /Yu/Yc/clr 选项不兼容
错误 C1196 identifier”:在类型库“typelib”中找到的标识符不是有效的 C++ 标识符
错误 C1197 无法引用“file”,因为程序已经引用了“file
错误 C1198 未来版本中将不支持 feature
错误 C1199 缺少对用于解析导入声明的 IFC 文件的引用; 请确保为 "/reference" 或 "/headerUnit" 选项提供正确值
错误 C1201 类模板定义中出现语法错误后无法继续
错误 C1202 递归类型或函数依赖项上下文太复杂
错误 C1203 #pragma extern_absolute 中的符号名或值规范无效
错误 C1204 #pragma extern_absolute 中指定的符号 "symbol-name" 具有不同的值: value-1 和 value-2
错误 C1205 (已过时) 安装的运行时版本不支持这些泛型
错误 C1206 (已过时) 安装的运行时版本不支持 per-appdomain 数据
错误 C1207 (已过时) 安装的运行时版本不支持托管模板
错误 C1208 (已过时) 安装的运行时版本不支持在堆栈上分配引用类
错误 C1209 (已过时) 安装的运行时版本不支持友元程序集
错误 C1210 (已过时) 安装的运行时版本不支持 /clr:pure 和 /clr:safe
错误 C1211 (已过时) 安装的运行时版本不支持 TypeForwardedTo 自定义特性
错误 C1212 生成时,输入文件已被另一个进程修改: "filename"
错误 C1213 如果没有 /Zc:preprocessor,则不支持标头单元
错误 C1214 模块与通过“option”请求的非标准行为发生冲突
错误 C1300 访问程序数据库 file (message) 时出错
错误 C1301 访问程序数据库 file时出错,无效的格式,请删除并重新生成
错误 C1302 在配置文件数据库“file”中没有模块“module”的配置文件数据
错误 C1303 配置文件数据库 "filename" 中的配置文件数据损坏
错误 C1304 配置文件数据库 "filename" 中的配置文件数据版本不匹配
错误 C1305 配置文件数据库“file”是用于另一个体系结构的
错误 C1306 配置文件数据基“file”的上次修改不是优化分析;优化决策可能已经过期
错误 C1307 自收集配置文件数据后已编辑了程序
错误 C1308 file:不支持链接程序集
错误 C1309 C2.DLL 和 pgodbversion.DLL 的版本不匹配
错误 C1310 按配置优化不能与 OpenMP 一起使用
错误 C1311 COFF 格式无法以静态方式初始化“symbol”(地址为 number 个字节)
错误 C1312 函数中的条件分支太多。 简化或重构源代码。
错误 C1313 编译器限制: type 块的嵌套深度不能深于 number
错误 C1350 加载 dll“file”时出错:没有找到 dll
错误 C1351 加载 dll“file”时出错:版本不兼容
错误 C1352 函数“function”(模块“module”中)的 MSIL 无效或已损坏
错误 C1353 元数据操作失败: 未安装运行时或运行时版本不匹配
错误 C1354 访问上一个对象文件 filename (reason) 时出错
错误 C1355 无法在 PDB 帮助程序中找到入口点 "function-name"
错误 C1356 找不到 PDB 帮助程序
错误 C1357 不支持 C2.DLL 的标志组合 hybrid:x86arm64, CLR
错误 C1358 模块 (密钥=0xvalue) 信息不可用
错误 C1382 obj”生成后,已重新生成 PCH 文件“file”。 请重新生成此对象
错误 C1383 编译器选项 /GL 与安装的公共语言运行时版本不兼容
错误 C1384 链接“file”时 PGO_PATH_TRANSLATION 的设置不正确
错误 C1385 按配置文件优化不适用于 Thumb; 将 "filename" 作为 ARM 或 Thumb-2 编译
错误 C1451 编译以下位置的 concurrency::parallel_for_each 的调用关系图时,未能生成调试信息: "callsite"
错误 C1505 无法恢复的先行分析错误
错误 C1506 无法恢复的块范围错误
错误 C1507 以前的用户错误和后面的错误恢复使进一步的编译暂停
错误 C1508 编译器限制:“function”:多于 65535 个参数字节
错误 C1509 编译器限制:函数“function”中有太多异常处理程序状态;简化函数
错误 C1510 无法打开语言资源 clui.dll
错误 C1511 Message (由 capture_repro 选项使用)
错误 C1601 不支持的内联程序集操作码
错误 C1602 不支持的内部函数
错误 C1603 内联程序集分支目标超出范围 number 个字节
错误 C1604 严重的 lambda 分析错误: 查看从第 number 行开始的 lambda 定义
错误 C1605 编译器限制: 对象文件大小不能超过 4 GB
错误 C1852 file”不是有效的预编译头文件
错误 C1853 file”预编译头文件来自早期版本的编译器,或者预编译头为 C++,却在 C 中使用它(或相反)
错误 C1854 无法覆盖在对象文件“file”中创建预编译头过程中形成的信息
错误 C1859 (已过时) "Message" 意外的预编译标头错误,只需重新运行编译器就可能修复此问题
错误 C1900 "tool" 版本 "number" 和 "tool" 版本 "number" 间的 IL 不匹配
错误 C1901 (已过时) 内部内存管理错误
错误 C1902 程序数据库管理器不匹配;请检查安装
错误 C1903 无法从以前的错误中恢复;正在停止编译
错误 C1904 错误的提供程序交互:“file
错误 C1905 前端和后端不兼容(必须以同一处理器为目标)。
错误 C1906 未为类型 "type-name" 解析的程序集引用 "name"; 缺少选项 "-FU filename.dll"?
错误 C1907 无法从以前的错误中恢复;正在停止编译
错误 C1999 未知错误 请选择 Visual C++“帮助”菜单中的“技术支持”命令,或打开技术支持帮助文件了解详细信息

另请参阅

C/C++ 编译器和生成工具错误与警告