常見編譯錯誤信息

原文地址:
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”:該標記不能轉換爲標識符。

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章