VisualC++常见错误及解决方案
1.致命错误C1002
错误信息
compiler is out of heap space in pass 2
错误分析
编译器在执行第二阶段堆空间溢出。
编译器运行的动态内存空间不足,在编译器(C2.EXE)执行第二阶段。通常,这意味着该程序有太多的符号或者复杂的表达式。
解决方案:
将文件分为几个较小的源文件。
将复杂的表达式变成较小的字表达式。
删除在系统中消耗大量的内存运行的其他程序或驱动程序。
2.致命错误C1023
错误信息
cannot open source file 'filename'
错误分析
无法打开源文件。
给定的文件不存在,或者没有被发现,从而导致无法打开。
如果只出现错误号而没有出现错误信息,则代表编译器用完了文件句柄。
解决方案
确保环境的设置是有效的,为文件指定正确的路径。
此错误可能是没有足够的文件句柄引起的,关闭一些已经打开的应用程序,然后重新编译。
试图打开一个文件或目录,如果您没有权限可能导致此错误。将文件移动到一个您有访问权限的目录下,或要求您的网络管理员授予您访问该文件的权限。
请确保该文件的名称拼写正确。
3.致命错误C1034
错误信息
‘file’no include path set
错误分析
头文件没有设置包含路径。
INCLUDE环境变量还没有设置。
解决方案
在工具菜单上选择选项命令进行设置。在选项对话框中,选择Directiories标签。显示目录框,
选择包含文件并指定包含文件的路径。
如果您使用的是命令行编译器,运行的vcvars32.bat批处理文件设置INCLUDE环境变量。
4.致命错误C1042
错误信息
cannot open compiler intermediate file - no such file or directory
错误分析
无法打开编译器中间文件,没有这样的文件或目录。
编译器无法创建在编译过程中使用的中间文件,因为TMP环境变量设置为一个无效的目录或路径。
解决方案
使用SET命令来更改TMP环境变量,使其指向一个有效的目录。
5.致命错误C1053
错误信息
‘<identifier>’function too large
错误分析
<identifier>’功能过于庞大。
函数太大无法进行编译。
解决方案
你可以尝试下优化编译,或者将原函数分成两个或多个函数。
请注意,内联函数调用例程可能使函数变的很大。
6.致命错误C1055
错误信息
compiler limitout of keys
错误分析
编译器受限制:键值溢出。
正在编译的文件中包含太多的符号。编译器建立了一个符号表并且使用哈希键来查表中的符号。此错误指示编译器已达到了自身的键值限制。
解决方案
尝试将原文件分成小的文件,并重新编译。
只包括那些绝对必要的头文件。
在可能的地方,重复使用临时和全局变量,,以便减少符号生成,从而需要较少的键值。
7.致命错误C1058
错误信息
compiler limittoo many formal arguments
错误分析
编译器受限制:太多的形式参数。
该函数的声明有太多的形参。
解决方案
通过结构或结构体指针减少参数的个数。
8.致命错误C1067
错误信息
compiler limitdebug information module size exceeded
错误分析
编译器受限制:调试信息模块大小限制。
此错误可能是由于一个名称超过247个字符的符号命名造成。
解决方案
缩短符号名长度。
9.致命错误C1189
错误信息
#erroruser supplied error message
错误分析
用户自定义错误信息。
此错误发生在程序中有一个#error指示的时候。
举例
#undef _WIN32
#if !defined(_WIN32)
#error _WIN32 must be defined //error
#endif编译器错误
int main()
{
  return 0;
}