1、VC+6.0 编译常见错误一、 检测错误的方法和原则拖动左下方滚动条,到最上边,从第一条错误开始检查。双击错误信息行,使光标定位到出错的行。说明: 错误不一定由定位的行引起,有可能是它上面一行,比如 missing ; before xxx 修改完 1 个错误后,重新编译,有可能后续的错误就消失了。这是因为一处错误可能引起多条出错信息。 警告(warning)不影响编译,可以暂时不管。当然严格来说,警告也可能隐含着问题,最好也全部改正。 良好的排版层次结构(缩进和对齐)有助于发现程序中的错误。二、 编译错误fatal error C1004: unexpected end of file fo
2、und 或 莫名其妙的出现一大堆编译错误。检查花括号是否匹配,是否两两配对,是否漏掉了左花括号或右花括号 。fatal error C1010: unexpected end of file while looking for precompiled header directive。 寻找预编译头文件路径时遇到了不该遇到的文件尾。 (一般是没有#include “stdafx.h“)fatal error C1021: invalid preprocessor command includ预处理指令拼写错误。fatal error C1071: unexpected end of file
3、found in comment检查是否注释符号不匹配。注释是以/*开始,以*/结束,*号和/中间没有空格。fatal error C1083: Cannot open include file: R.h: No such file or directory 不能打开包含文件“R.h”:没有这样的文件或目录。error C2001: newline in constant检查是否漏了双引号,双引号是否配对,是否把双引号“写成了单引号。error C2011: C: class type redefinition 类“C”重定义。 error C2018: unknown character 0
4、xa3 不认识的字符0xa3。 (一般是汉字或中文标点符号中出现,如双绰号“写成“或” ,逗号,写成了,圆括号()写成()等等。 )error C2057: expected constant expression 希望是常量表达式。 (一般出现在 switch 语句的 case 分支中)error C2065: a : undeclared identifier “a”:未声明过的标识符。 error C2059: syntax error : = 或 error C2059: syntax error : 运算符写错,一般是在双字符运算符中间多写了空格,或两个字符前后颠倒,如= =,=。e
5、rror C2082: redefinition of formal parameter a 函数参数“a”在函数体中重定义。 error C2143: syntax error: missing : before 句法错误:“”前缺少“ ;” 。 error C2146: syntax error : missing ; before identifier a 句法错误:在“a” 前丢了“;”。 error C2196: case value 69 already used 值 69 已经用过。 (一般出现在 switch 语句的 case 分支中)C2447: missing functi
6、on header (old-style formal list?)缺少函数头部。这错误常常由于一个缺少“”或用的一个“; ”,而不是一个“”以下的参数列表一个功能头。error C2509: OnTimer : member function not declared in CHelloView 成员函数“OnTimer”没有在“CHelloView”中声明。 error C2511: reset: overloaded member function void (int) not found in B 重载的函数“void reset(int)” 在类“B”中找不到。 error C255
7、5: B:f1: overriding virtual function differs from A:f1 only by return type or calling convention 类 B 对类 A 中同名函数 f1 的重载仅根据返回值或调用约定上的区别。 error C2660: SetTimer : function does not take 2 parameters “SetTimer”函数不传递 2 个参数。 error C4716: CMyApp:InitInstance : must return a value“CMyApp:InitInstance”函数必须返回一
8、个值。 工具栏上的编译按钮显示为灰色,无法编译。看文件扩展名是否正确,应该为.c。若不是(如扩展名是.txt) ,则从菜单 File 选 Save As(另存为),另存为一个.c 文件。return0: return 和 0 中间有个空格,否则就连在一起成为一个标识符了。三、警告warning C4035: f: no return value “f”的 return 语句没有返回值。 warning C4508: main : function should return a value; void return type assumedmain 函数必须返回一个函数值,或者用 void 来
9、承担。warning C4553: = = : operator has no effect; did you intend =? 没有效果的运算符“= =”;是否改为“=”? warning C4700: local variable a used without having been initialized 局部变量“a”没有初始化就使用。 四、连接错误链接错误 LINK : fatal error LNK1104: cannot open file “Release/1.exe“程序的上次运行没有关闭,关掉运行窗口再重新链接。因为链接成功后要写可执行文件(.exe),而可执行文件正在运
10、行时是不可写的。error LNK2001: unresolved external symbol _main没有 main 函数。检查拼写,看是否把 main 写成了 mian。error LNK2005: _main already defined in a.objfatal error LNK1169: one or more multiply defined symbols found一般是在一个程序里面有多个源文件都包含 main 函数。在运行新的程序之前把原有的源文件从 fileview 里删掉。LINK : fatal error LNK1168: cannot open Deb
11、ug/P1.exe for writing 连接错误:不能打开 P1.exe 文件,以改写内容。 (一般是 P1.Exe 还在运行,未关闭) error LNK2001: unresolved external symbol “public: virtual _ _thiscall C:C(void)“ 连接时发现没有实现的外部符号(变量、函数等) 。function call missing argument list 调用函数的时候没有给参数。member function definition looks like a ctor, but name does not matchenclosing class 成员函数声明了但没有使用unexpected end of file while looking for precompiled header directive在寻找预编译头文件时文件意外结束,编译不正常终止可能造成这种情况.程序运行弹出非法操作的对话框。检查是否有 scanf 漏掉&符号的问题。
Copyright © 2018-2021 Wenke99.com All rights reserved
工信部备案号:浙ICP备20026746号-2
公安局备案号:浙公网安备33038302330469号
本站为C2C交文档易平台,即用户上传的文档直接卖给下载用户,本站只是网络服务中间平台,所有原创文档下载所得归上传人所有,若您发现上传作品侵犯了您的权利,请立刻联系网站客服并提供证据,平台将在3个工作日内予以改正。