Compiler Fatal Errors C999 through C1999(第一辑)
Fatal Error C999:UNKNOWN MESSAGE Please choose the Technical Support command on the Visual C++ Help menu, or open the Technical Support help file for more information。This error usually means that you have mixed files from different versions of the compiler, or your compiler installation is corrupted. Use the Programs and Features applet in the Control Panel to repair or reinstall the product.
未知的消息请选择Visual C ++帮助菜单上的技术支持命令,或者打开技术支持帮助文件以获取更多信息。
这个错误通常意味着你有来自不同版本编译器的混合文件,或者你的编译器安装被破坏了。 使用控制面板中的程序和功能小程序修复或重新安装产品。
Fatal Error C1001:INTERNAL COMPILER ERROR(compiler file file, line number)。
The compiler cannot generate correct code for a construct, probably due to the combination of an expression and an optimization option. Try removing one or more optimization options and recompiling the function containing the line indicated in the error message.
You can probably fix the problem by removing one or more optimization options. To determine which option is at fault, remove options one at a time and recompile until the error message goes away. The options most commonly responsible are /Og, /Oi, and /Oa. Once you determine which option is responsible, you can disable it using the optimize pragma around the function where the error occurs and continue to use the option for the rest of the module.
The Microsoft Knowledge Base has more information about C1001; see http://support.
Try rewriting the line where the error is reported, or several lines of code surrounding that line.
内部编译器错误(编译器文件文件,行号)。
编译器无法为构造生成正确的代码,可能是由于表达式和优化选项的组合。 尝试删除一个或多个优化选项并重新编译包含错误消息中指示的行的函数。
您可以通过删除一个或多个优化选项来解决该问题。 要确定哪个选项出错,请一次删除一个选项并重新编译,直到错误消息消失。 最常见的选项是/ Og,/ Oi和/ Oa。 一旦确定了哪个选项是负责的,您可以在发生错误的函数周围使用optimize pragma来禁用它,并继续为模块的其余部分使用该选项。
Microsoft知识库包含有关C1001的更多信息; 请参阅http://support.。
尝试重写报告错误的行或围绕该行的几行代码。
Fatal Error C1002:compiler is out of heap space in pass 2。
The compiler ran out of dynamic memory space during its second pass, probably due to a program with too many symbols or complex expressions
To fix by using the following possible solutions。
1.Divide the source file into several smaller files.
2.Break expressions into smaller subexpressions.
3.Remove other programs or drivers that consume memory.
编译器在第2遍中没有堆空间。
编译器在第二遍时耗尽了动态内存空间,可能是由于程序中符号太多或表达式复杂。
使用以下可能的解决方案进行修复。
1:将源文件分成几个较小的文件。
2:将表达式分解成更小的子表达式。
3:删除其他消耗内存的程序或驱动程序。
Fatal Error C1003:error count exceeds number; stopping compilation
Errors in the program are too numerous to allow recovery. The compiler must terminate.
错误计数超过数量; 停止编译。
程序中的错误太多,无法恢复。 编译器必须终止。
Fatal Error C1004:unexpected end of file found。
The compiler reached the end of a source file without resolving a construct. The code may be missing one of the following elements:
A closing brace。
A closing parenthesis。
A closing comment marker (*/)
A semicolon。
To resolve this error, check for the following:
The default disk drive has insufficient space for temporary files, which require about twice as much space as the source file.
An #if directive that evaluates to false lacks a closing #endif directive.
A source file does not end with a carriage return and line feed.
发现意外的文件结尾。
编译器在不解析构造的情况下到达源文件的末尾。 该代码可能缺少以下元素之一:
一个右大括号。
右括号。
结束评论标记(* /)
分号。
要解决此错误,请检查以下内容:
默认磁盘驱动器没有足够的空间存放临时文件,这需要大约两倍于源文件的空间。
#if指令的计算结果为false缺少关闭#endif指令。
源文件不会以回车和换行符结束。
Fatal Error C1005:string too big for buffer。
A string in a compiler intermediate file overflowed a buffer.
You could get this error when the parameter that you pass to either the /Fd or /Yl compiler options is greater than 256 bytes.
字符串对于缓冲区太大。
编译器中间文件中的字符串溢出缓冲区。
当传递给/ Fd或/ Yl编译器选项的参数大于256字节时,可能会出现此错误。
Fatal Error C1007:unrecognized flag string in option。
The command-line option contains an invalid string. Check the CL command line and environment variable for errors.
选项中无法识别的标志字符串。
命令行选项包含无效的字符串。 检查CL命令行和环境变量是否有错误。
Fatal Error C1008:no input file specified。
The compiler was not given a C or C++ source file to compile. Check the CL command line and environment variable for filename specifications.
没有指定输入文件。
编译器没有被赋予C或C ++源文件进行编译。 检查CL命令行和环境变量的文件名规范。
Fatal Error C1009:compiler limit : macros nested too deeply。
The compiler tried to expand too many macros at the same time. The compiler has a limit of 256 levels of nested macros. Split nested macros into simpler macros.
编译器限制:宏嵌套过深。
编译器试图同时扩展太多的宏。 编译器具有256个嵌套宏级别的限制。 将嵌套宏分解为更简单的宏。
Fatal Error C1010:unexpected end of file while looking for precompiled header. Did you forget to add '#include name' to your source?
An include file specified with /Yu is not listed in the source file. This option is enabled by default in most Visual C++ Project types and "stdafx.h" is the default include file specified by this option.
In the Visual Studio environment, use one of the following methods to resolve this error:
If you do not use precompiled headers in your project, set the Create/Use Precompiled Header property of source files to Not Using Precompiled Headers. To set this compiler option, follow these steps:
1:In the Solution Explorer pane of the project, right-click the project name, and then click Properties.
2:In the left pane, click the C/C++ folder.
3:Click the Precompiled Headers node.
4:In the right pane, click Create/Use Precompiled Header, and then click Not Using Precompiled Headers.
Make sure you have not inadvertently deleted, renamed or removed header file (by default, stdafx.h) from the current project. This file also needs to be included before any other code in your source files using #include "stdafx.h". (This header file is specified as Create/Use PCH Through File project property)。
在查找预编译头文件时意外的文件结尾。 你忘了添加'#包括名称'到你的源?
/ Yu中指定的包含文件未在源文件中列出。 大多数Visual C ++ Project类型默认启用此选项,“stdafx.h”是此选项指定的默认包含文件。
在Visual Studio环境中,使用以下方法之一来解决此错误:
如果您在项目中不使用预编译头文件,请将源文件的创建/使用预编译头文件属性设置为不使用预编译头文件。 要设置此编译器选项,请按照下列步骤操作:
1:在项目的解决方案资源管理器窗格中,右键单击项目名称,然后单击属性。
2:在左侧窗格中,单击C / C ++文件夹。
3:单击预编译头节点。
4:在右窗格中,单击创建/使用预编译的标题,然后单击不使用预编译的标题。
确保您没有在当前项目中无意中删除,重命名或删除头文件(默认为stdafx.h)。 这个文件还需要包含在使用#include“stdafx.h”的源文件中的任何其他代码之前。 (该头文件被指定为创建/使用PCH通过文件项目属性)。