admin管理员组

文章数量:1531274

2024年2月15日发(作者:)

常见编译错误信息

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"///library/CHS/vccore/html/_vc_build_.

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”:该标记不能转换为标识符。

本文标签: 函数类型错误不能定义