常见编译错误信息

原文地址:
http://wenku.baidu.com/link?url=XWerSn3b1uBQf3HdHfsXE3_pnqtkNqx_oMdSSYF_lROyD7KYywY69pjO1Ac3g4icAe_x_l3EZQvMYfj8pgn1T_YrqUH8OvM_UzEHC9lunkW

————————————————————————————————————————————————————

常见编译错误信息

A.1 visual c++ 6.0的错误信息概述
visual C++ 6.0的编译连接错误信息分为三种类型:致命错误、一般错误和警告。
其中,致命错误是内部编译和连接器出错,一般错误指程序的语法错误,磁盘、文件或内存存取错误或命令行错误等,警告则只指出一些值得怀疑的情况,它并不阻止编译的进行。
Visual C++ 6.0的编译连接错误信息分为下列类型:
编译器错误,错误代码 C999-C3999.
编译器警告,错误代码C4000-C4999.
连接器错误,错误代码LNK1000-LNK2035.
连接器警告,错误代码LNK4001-LNK4255.
C运行时错误,错误代码R6002-R6035.
C运行时警告,错误代码CRT1001.
资源编译器错误,错误代码RC1000-RC2236.
资源编译器警告,错误代码RC4000-RC4413.
资源编译器警告,错误代码RW1004-RW4004.
NMAKE错误,错误代码U1000-U4014.
ATL提供程序错误和警告,错误代码ATL2004-ATL4111.
命令行错误,错误代码D8000-D8046.
命令行警告,错误代码D9000-D9044.
配置优化错误和警告,错误代码PG0001-PG1087.
项目生成错误和警告,错误代码PRJ0002-PRJ0051.
CVTRES错误,错误代码CVT1100-CVT4001.
BSCMAKE错误,错误代码BK1500-BK4503.
表达式计算错误,错误代码CXX0000-CXX0072
数学错误,错误代码M6101-M6205.
SPROXY错误,错误代码SDL0000-SDL1030.
SPROXY警告,错误代码SDL4000-SDL4009.
Web部署错误和警告,错误代码VCD0001-VCD0048.
XDCMake错误和警告,错误代码VCD0001-VCD0048.
其中最常用的是编译器错误和警告。
Visual C++ 6.0的编译连接错误信息数量庞大,而且是英文版的。目前Micorosoft已经将这些信息翻译成中方,为查询最新的信息请浏览微软公司中文网站:http”//msdn.microsoft.com/library/CHS/vccore/html/_vc_build_errors.asp.
A.2 Visual C++ 6.0编译错误作息列表
下面按错误代码顺序列出常见的Visual C++ 6.0编译错误信息及解决提示。
C1003:错误计数超过 number;正在停止编译。
C1004:遇到意外的文件结束。
C1010:在查找预编译头时遇到意外的文件结尾。是否忘记了向源代码中添加“#include name”.
C1012:不匹配的括号:缺少 character.
C1013:编译器限制:左括号太多。
C1021:无效的预处理器命令“string”.
C1034:file:不包括路径集。
C1057:宏展开中遇到意外的文件结束。
C1071:在注释中遇到意外的文件结束。
C1075:与左侧的token(位于“filename(linenumber)”)匹配之前遇到文件结束。
C1083:无法打开filetype文件:“file”:message.
C1085: 无法写入filetype文件:“file”:message.
C1086: 无法查找filetype文件:“file”:message.
C1091:编译器限制:字符串长度超过“length”个字节。
C1126:“identifier”:自动分配超过 size.
C1189:#error:用户提供的错误信息。
C1507:以前的用户错误和后面的错误恢复使进一步的编译暂停。
C1903:无法从以前的错误中恢复;正在停止编译。
C2001:常数中有换行符。
C2002:无效的宽字符常数。
C2007:#define 语法。
C2008:“character”:宏定义中的意外。
C2009:宏形式“identifier”重复使用。
C2010:“character”:宏形参表中的意外。
C2011“identifier”:“type”类型重定义。
C2012:在“<”之后缺少名称。
C2013:缺少“>”。
C2014:预处理器命令必须作为第一个非空白空间启动。
C2015:常数中的字符太多。
C2017:非法的转义序列。
C2018:未知字符“hexnumber”。
C2019:应找到预处理器指令,却找到“character”。
C2021:应输入指数值,而非“character”。
C2022:“number”:对字符来说太大。
C2026:字符串太小,已截断尾部字符。
C2027:使用了未定义的类型“type”。
C2028:结构/联合成员必须在结构/联合中。
C2030:“identifier”:结构/联合成员重定义。
C2032:“identifier”:函数不能是结构/联合“structorunion”的成员。
C2033:“identifier”:位域不能有间接寻址。
C2034: “identifier”:位域类型对于倍数太小。
C2036:“identifier”:未知的大小。
C2039:“identifier1”:不是“identifier2”的成员。
C2040:“operator”: “identifier1”与“identifier2”的间接寻址级别不同。
C2041:非法的数字“character”(用于基“number”)。
C2042:signed/unsigned关键字互相排斥。
C2043:非法break。
C2044:非法continue。
C2045:“identifier”:标签重定义。
C2046:非法的 case。
C2047:非法的default。
C2048:默认值多于一个。
C2050:switch表达式不是整数。
C2051:case 表达式不是整数。
C2052:“type”:非法的 case 表达式类型。
C2053:“identifier”:宽字符串不匹配。
C2054:在“identifier”之合应输入“(”。
C2055:应输入形参表,而不是类型表。
C2056:非法表达式。
C2057:应输入常数表达式。
C2058:常数表达式不是整型。
C2059:语法错误:“token” 。
C2060:语法错误:遇到文件结束。
C2061:语法错误:标识符“identifier”。
C2062:意外的类型“type”。
C2063:“identifier”:不是函数。
C2064:项不会计算为接受“number”个参数的函数。
C2066:转换到函数类型是非法的。
C2067:转换到数组类型是非法的。
C2069:“void”项到非“void”项的强制转换。
C2070:“type”,非法的 sizeof操作数。
C2071:“identifier”:非法的存储类。
C2072:“identifier”:函数的初始化。
C2073:“identifier”:部份初始化数组的元素必须有默认构造函数。
C2074:“identifier”:“class-key”初始化需要大括号。
C2075:“identifier”:数组初始化需要大括号。
C2077:非标量字段初始值设定项“identifier”。
C2078:初始值设定项太多。
C2079:“identifier”使用未定义的类/结构/联合“name”。
C2081:“identifier”:形参中的名称非法。
C2082:形参“identifier”的重定义。
C2083:结构/联合比较非法。
C2085:“identifier”:不在形参表中。
C2086:“identifier”:重定义。
C2087:“identifier”:缺少下标。
C2088:“operator”:对于“class-key”非法。
C2089:“identifier”:“class-key”太大。
C2090:函数返回数组。
C2091:函数返回函数。
C2092:“array name”数组类型不能是函数。
C2093:“variable1”:无法使用自动变量“variable2”的地址初始化。
C2094:标签“identifier”未定义。
C2095: “function”:实参具有类型“void”:“number”参数。
C2097:非法的初始化。
C2099:初始值设定项不是常数。
C2100:非法的间接寻址。
C2101:常数上的“&”。
C2102:“&”要求左值。
C2103:寄存器变量上的“&”。
C2104:位域上的“&”被忽略。
C2105:“operator”需要左值。
C2106:“operator”:左操作数必须为左值。
C2107:非法索引,不允许间接寻址。
C2108:下标不是整型。
C2109:下标要求数组或指针类型。
C2110:“+”:不能添加两个指针。
C2111:“+”:指针加法要求整型操作数。
C2112:“-”:指针减法要求整型或指针类型操作数。
C2113:“-”:指针只能从另一个指针上进行减法去处。
C2114:“operator”:左侧是指针,右侧需要是整数值。
C2115: “identifier”:不兼容的类型。
C2116:函数参数列表有差异。
C2117:“identifier”:数组界限溢出。
C2118:负下标。
C2120:对于所有类型“viod”非法。
C2121:“#”:无效字符:可能是宏展开的结果。
C2122:“identifier”:名称列表中的原型参数非法。
C2124:被零除或对零求模。
C2126:“operator”:不正确的操作数。
C2129:静态函数“function”已声明但未定义。
C2132:语法错误:意外的标识符。
C2133:“identifier”:未知的大小。
C2134:“identifier”:结构/联合太大。
C2135:“bit operator”:非法的位域操作。
C2137:空字符常数。
C2138:定义没有任何成员的枚举是非法的。
C2141:数组大小溢出。
C2142:函数声明有差异,只在一个声明中指定了变量参数。
C2143:语法错误:“token2”前缺少“token1”。
C2144:语法错误:“type”的前面应有“token”。
C2145:语法错误:标识符前面缺少“token”。
C2146:语法错误:标识符“identifier”前缺少“token”。
C2147:语法错误:“identifier”是新的关键字。
C2148:数组的总大小不得超过0x7fffffff字节。
C2149:“identifier”:已命名位域不能有零宽度。
C2150:“identifier”:位域必须有“int”、“signed int”或“unsigned int”类型。
C2151:语言属性多一个。
C2152:“identifier”:指向有不同的属性的函数的指针。
C2153:十六进制常数必须至少有一个十六进制的数字。
C2155:“?”:左边的操作数无效,应为算术类型或指针类型。
C2159:指定了一个以上的存储类。
C2160:“##”不能在宏定义的开始处出现。
C2161:“##”不能在宏定义的结尾处出现。
C2162:应输入宏形参。
C2165:“keyword”:不能修改指向数据的指针。
C2166:左值指定常数对象。
C2167:“function”:内部函数的实参太多。
C2168:“function”:内部函数的实参太少。
C2169:“function”:内部函数,不能定义。
C2170:“identifier”:没有声明为函数,不能是内部函数。
C2171:“operator”:“type”类型的操作数非法。
C2172:“function”:实参不是指针:参数number。
C2173:“function”:实参不是指针:参数number1,参数列表number2。
C2174:“function”:实参具有类型“void”:参数number1,参数列表number2。
C2177:常数太大。
C2180:控制表达式的类型为“type”。
C2181:没有匹配if的非法else。
C2182:“identifier”:非法使用“void”类型。
C2183:语法错误:翻译单元为空。
C2186:“operator”“void”类型的操作数非法。
C2188:“number”:对宽字符来说太大。
C2189:#error:string。
C2190:第一个参数列表比第二个长。
C2191:第二个参数列表比第一个长。
C2192:参数“number”声明不同。
C2196:case值“value”已使用。
C2197:“function”:用于调用的参数太多。
C2198:“function”:用于调用的参数太少。
C2199:语法错误:在全局范围内找到“identifier(”(是有意这样声明的吗?)。
C2203:删除运算符不能指定数组的边界。
C2204:“type”:括号中找到的类型定义。
C2205:“identifier”:不能对带有块范围的外部变量进行初始化。
C2206:“function”:typedef不能用于函数定义。
C2207:在结构/联合“tag”中的“member”有大小为零的数组。
C2208:“type”:没有使用此类型进行定义的成员。
C2216:“keyword1”不能和“keyword2”一起使用。
C2217:“attributel”需要“attribute2”。
C2219:语法错误:类型限定符必须位于“*”之后。
C2221:意外类型“type”:必须为本机类/结构/联合类型。
C2222:“->”:左操作数具有结构/联合类型,使用“.”。
C2223:“->identifier”的左侧必须有结构指向结构/联合。
C2224:“identifier”的左侧必须有结构/联合类型。
C2226:语法错误:意外的“type”类型。
C2227:“->member”的左边必须有类/结构/联合/泛型类型。
C2228:“.identifier”的左侧必须有类/结构/联合。
C2229:类型“identifier”有非法的零大小的数组。
C2231:“.”:左操作数具有“class-key”,使用“. ”。
C2232:“C>”:左操作数具有“class-key”类型,使用“.”。
C2234:“name”:引用数组是非法的。
C2238:“token”前有意外的标记。
C2242:typedef名不能位于类/结构/联合之后。
C2244:“identifier”:无法将函数定义与现有的声明匹配。
C2246:“identifier”:本地定义的类中的非法静态数据成员。
C2264:“function”:函数定义或声明中有错误;未调用函数。
C2265:“identifier”:对零大小的数组引用非法。
C2266:“identifier”:对非常数绑定数组的费用非法。
C2267:“function”:具有块范围的静态函数非法。
C2273:“type”:位于“->”运算符右边时非法。
C2274:“type”:位于“.”运算符右边时非法。
C2275:“identifier”:将此类型用作表达式非法。
C2276:“operator”:绑定成员函数表达式上的非法操作。
C2290:C++ asm 语法已被忽略。使用__asm。
C2294:“identifier”:内部函数的非法参数,参数“number”。
C2295:转义的“character”:在宏定义中非法。
C2296:“operator”:左操作数错误。
C2297:“operator”:右操作数错误。
C2308:串联不匹配的字符串。
C2332:“typedef”:缺少标记名。
C2333:“function”:函数声明中有错误;路过函数体。
C2334:‘:或{‘的前面有意外标记,路过明显的函数体}。
C2360:“case”标签跳过了“identifier”的初始化。
C2361:“default”标签跳过“identifier”的初始化操作。
C2362:“goto label”跳过了“identifier”的初始化。
C2369:“array”:重定义;不同的下标。
C2377:“identifier”:重定义;typedef不能由任何其他符号重载。
C2378:“identifier”:重定义;符号不能由typedef重载。
C2379:提升后形参number具有不同的类型。
C2380: “identifier”前的类型(构造函数有返回类型或当前类名称的重定义非法?)。
C2383:“symbol”:此符号中不允许有默认参数。
C2444:“identifier”:使用了ANSI原型,找到“type”,应为“{”或“;”。
C2446:“operator”:没有从“type”到“type2”的转换。
C2447:“{”:缺少函数标题(是否是老式的形式表?)。
C2448:“identifier”:函数样式初始值设定项类似函数定义。
C2449:在文件范围内找到“{”(是否缺少函数头?)。
C2450;“type”类型的switch表达式是非法的。
C2451:“type”类型的条件表达式是非法。
C2458:“identifier”:定义范围内的重定义。
C2459:“identifier”:正被定义;无法作为匿名成员添加。
C2465:不能在括号内定义匿名类型。
C2466:不能分配常数大小为 0 的数组。
C2469:“operator”:无法分配“type”对象。
C2470:“function”:看起来像函数定义,但没有参数列表;跳过明显的函数体。
C2473:“identifier”:看起来像函数定义 ,但却没有参数列表。
C2474:“keyword”:丢失相邻的分号,可能是关键字或标识符。
C2526:“identifier1”:C连接函数无法返回C++类“identifier2”。
C2528:“name”:指向引用的指针非法。
C2539:“name”:对引用的引用非法。
C2530:“identifier”:必须初始化引用。
C2531:“identifier”:位域的引用非法。
C2532:“identifier”:引用的非法修饰符。
C2537:“specifier”:非法的连接规范。
C2540:作为数组界限的非常数表达式。
C2541:“delete”:delete:不能删除不是指针的对象。
C2543:应输入运算符“[]”的“]”。
C2544:应输入运算符“()”的“)”。
C2548:“class::member”:缺少parameter参数的默认参数。
C2551:“void *”类型需要显式转换。
C2561:“identifier”:函数必须返回值。
C2562:“identifier”:“void”函数返回值。
C2563:在形参表中不匹配。
C2564:“type”:到内置类型的函数样式转换只能接收一个参数。
C2566:条件表达式中的重载函数。
C2572:“class::member”:重定义默认参数:参数param。
C2587:“identifier”:将局部变量用作默认参数非法。
C2592:初始化表达式到类型“type”没有合法的转换。
C2598:连接规范必须在全局范围内。
C2599:“enum”:不允许枚举类型的前向声明。
C2601:“function”:本地函数定义是非法的。
C2617:“function”:返回语句不一致。
C2619:联合“union”:不能有静态成员变量“identifier”。
C2620:成员“identifier”(属于联合“union”)具有用户定义的构造函数或不常用的默认构造函数。
C2622:联合“union”的成员“identifier”具有赋值运算符。
C2624:局部类不能用于声明“外部”变量。
C2632:“type1”后面接“type2”是非法的。
C2646:全局匿名联合必须声明为静态。
C2649:“identifier”:不是“class-key”。
C2656:“function”:函数不能作为位域使用。
C2658:“member”:匿名结构/联合中的重定义。
C2659:“operator”:作为左操作数。
C2660:“function”函数不采用number参数。
C2661:“function”:没有重载的函数接受number个参数。
C2669:匿名联合中不能使用成员函数。
C2708:“identifier”:实参的字节长度不同于以前的调用或引用。
C2709:“identifier”:形参的字节长度不同于以前的声明。
C2731:“identifier”:无法重载函数。
C2732:连接规范与“function”的早期规范冲突。
C2733:不允许重载函数“function”的第二个C连接。
C2734:“identifier”:如果不是外部的,则必须初始化常数对象。
C2735:不允许在形参类型说明符中使用“keyword”关键字。
C2736:不允许在强制转换中使用“keyword”关键字。
C2745:“token”:该标记不能转换为标识符。

展开阅读全文

没有更多推荐了,返回首页