当前位置:首页 » 编程软件 » 编译出错

编译出错

发布时间: 2022-01-09 17:05:25

Ⅰ 为什么写了程序之后,进行编译,却提示编译错误

可能是没有正确配置系统库的路径,或将后缀名误写成了.c而不是.cpp。

Ⅱ 程序编译错误不知道是什么原因

不能通编译过的程序实际上还不是合法的程序,因为它不满足C语言对于程序的基本要求。

检查语法错误的第一要义:集中力量检查系统发现的第一个错误,弄清并改正它。

在编译过程中系统发现的错误主要有两类:基本语法错误和上下文关系错误。这些错误都在表面上,可以直接看得见。也是比较容易弄清,比较容易解决的。关键是需要熟悉C语言的语法规定和有关上下文关系的规定,按照这些规定检查程序正文,看看存在什么问题。

编译中系统发现错误都能指出错误的位置。不同系统在这方面的能力有差异,在错误定位的准确性方面有所不同。有的系统只能指明发现错误的行,有的系统还能够指明行内位置。

一般说,系统指明的位置未必是真实错误出现的位置。通常情况是错误出现在前,而系统发现错误在后,因为它检查到实际错误之后的某个地方,才能确认出了问题,因此报出错误信息。要确认第一个错误的原因,应该从系统指明的位置开始,在那里检查,并从那里开始向前检查。

系统的错误信息中都包含一段文字,说明它所认定的错误原因。应该仔细阅读这段文字,通常它提供了有关错误的重要线索。但也应该理解,错误信息未必准确,有时错误确实存在,但系统对错误的解释也可能不对。也就是说,在查找错误时,既要重视系统提供的错误信息,又不应为系统的错误信息所束缚。

发现了问题,要想清楚错误的真正原因,然后再修改。不要蛮干。在这时的最大诱惑就是想赶快改,看看错误会不会消失。但是蛮干的结果常常是原来的错误没有弄好,又搞出了新的错误。

另一个值得注意的地方:程序中的一个语法错误常常导致编译系统产生许多错误信息。如果你改正了程序中一个或几个错误,下面的弄不清楚了,那么就应该重新编译。改正一处常常能消去许多错误信息行。

解决语法错误

常见语法错误:

1)缺少语句、声明、定义结束的分号。

2)某种括号不配对。C语言中括号性质的东西很多,列举如下:
( ), [ ], { }, ' ', " ", /* */
在不同位置的括号不配对可能引起许多不同的错误信息。

3)关键字拼写错误。

较难认定的典型错误:

1)宏定义造成的错误。这种东西不能在源程序文件中直接看到,是在宏替换之后出现的。常见的能引起语法错误的宏定义错误:宏定义中有不配对的括号,宏定义最后加了不该有的分号,……

解决上下文关系错误

1)变量没有定义。产生这个问题的原因除了变量确实没有大意外,还可能是变量的拼写错误,变量的作用域问题(在不能使用某个变量的地方想去用那个变量)。

2)变量重复定义。例如在同一个作用域里用同样名字定义了两个变量,函数的局部变量与参数重名等。

3)函数的重复定义。可能是用同一个名字定义了两个不同的函数。或者是写出的函数原型在类型上与该函数的定义不相符。有时没有原型而直接写函数调用也可能导致这种错误信息,因为编译程序在遇到函数调用而没有看到函数原型或函数定义时,将给函数假定一个默认原型。如果后来见到的函数定义与假定不符,就会报告函数重复定义错误。

4)变量类型与有关运算对运算对象或者函数对参数的要求不符。例如有些运算(如 %)要求整数参数,而你用的是某种浮点数。

5)有些类型之间不能互相转换。例如你定义了一个结构变量,而后要用它给整数赋值。系统容许的转换包括:数值类型之间的转换,整数和指针之间的转换,指针之间的转换。其余转换(无论是隐含的,还是写出强制)都不允许。参见《C语言程序设计》(K&R)197-199页。

如何看待编译警告

当编译程序发现程序中某个地方有疑问,可能有问题时就会给出一个警告信息。警告信息可能意味着程序中隐含的大错误,也可能确实没有问题。对于警告的正确处理方式应该是:尽可能地消除之。对于编译程序给出的每个警告都应该仔细分析,看看是否真的有问题。只有那些确实无问题的警告才能放下不管。

注意:经验表明,警告常常意味着严重的隐含错误。

常见警告:

1)(局部自动)变量没有初始化就使用。如果对局部指针变量出现这种情况,后果不堪设想。对于一般局部自动变量,没有初始化就使用它的值也不会是有意义的。

2)在条件语句或循环语句的条件中写了赋值。大部分情况是误将 == (等于判断)写成 = 了。这是很常见的程序错误,有些编译程序对这种情况提出警告。

Ⅲ 为什么编译总是出错

如果使用C的编译器,应该是能编译通过
因为C编译器如果没有写明函数的返回值的话默认的函数返回值是int
如果使用C++的编译器就编译不过了
因为C++比C更严格了,不允许默认的int返回值

Ⅳ c++中什么是语法错误,什么是编译错误

程序的错误主要分成三种:

  1. 编译链接错误;

    编译链接错误又分成编译错和链接错。

    编译错就是普通意义上的语法错,编译器进行语法检查不通过,也就是程序违背了计算机语言的语法,例如:括号不匹配、变量名拼写错误、用保留字定义变量名等;

    链接错是指程序通过了语法检查,但是无法生成可执行文件,最常见的是链接找不到lib库。初学者有时写了函数的声明,但是缺少函数的定义,此时就会出现链接错。

  2. 运行错误;

    运行错是程序可以执行,但是在执行过程中发生异常,提前退出程序。最常见的是指针越界,打开文件失败继续读取文件,总而言之是让计算机执行一些不能执行的语句。

  3. 逻辑错误

    逻辑错是程序也能运行,就是结果不对,主要原因有:程序算法本身错误,程序和算法不同义等。

    例如:新手经常将判断相等的==写成=赋值,往往就会导致逻辑错。

你的BD(int,int); 是一句函数调用?还是一句函数声明?

Ⅳ 为什么编译没有错误,运行却有错误

编译没有错误是因为你的程序语法没有错误.
而运行时则有可能出现逻辑错误.
比如说C#里最常见的"未将对象引用设置到对象的实例",就是说一个对象并没有实力化,或者没有值就去引用了.
再比如连接数据库,语法正确,但是运行时却因为SQL未启动或者连接字符串拼写错误而发生异常.

Ⅵ C语言编译错误如何解决

C语言编译错误如何解决,
办法就是逐条分析编译错误提示输出的信息,并按照提示修改,
没有捷径,只能一条条地把编译出错的地方修改掉。
建议从前往后改,因为有可能后面的错误都是第一条的错误引起的。
所以可以改完几条就重新编译下,看修改的地方是否通过编译了。
如此循环,直到消除所有的错误。
请采纳,谢谢

Ⅶ 求助,C++编译出错

应该给出具体的错误,才能帮你分析错误的原因。
下满是C++编译时最容易出现的错误:
1、fatal error C1010: unexpected end of file while looking for precompiled header directive.
寻找预编译头文件路径时遇到了不该遇到的文件尾。(一般是没有#include "stdafx.h")
2、fatal error C1083: Cannot open include file: 'R……。h': No such file or directory
不能打开包含文件“R……。h”:没有这样的文件或目录。 3、error C2011: 'C……': 'class' type redefinition 类“C……”重定义。
4、error C2018: unknown character '0xa3' 不认识的字符'0xa3'.(一般是汉字或中文标点符号) 5、error C2057: expected constant expression 希望是常量表达式。(一般出现在switch语句的case分支中) 6、error C2065: 'IDD_MYDIALOG' : undeclared identifier “IDD_MYDIALOG”:未声明过的标识符。
7、error C2082: redefinition of formal parameter 'bReset' 函数参数“bReset”在函数体中重定义。
8、error C2143: syntax error: missing ':' before '{' 句法错误:“{”前缺少“;”。
9、error C2146: syntax error : missing ';' before identifier 'dc'
句法错误:在“dc”前丢了“;”。
10、error C2196: case value '69' already used 值69已经用过。(一般出现在switch语句的case分支中)
11、error C2509: 'OnTimer' : member function not declared in 'CHelloView'
成员函数“OnTimer”没有在“CHelloView”中声明。
12、error C2511: 'reset': overloaded member function 'void (int)' not found in 'B'
重载的函数“void reset(int)”在类“B”中找不到。
13、error C2555: 'B::f1': overriding virtual function differs from 'A::f1' only by return type or calling convention void function(e,t){for(var n=t.getElementsByTagName("img"),a=+new Date,i=[],o=function(){this.removeEventListener&&this.removeEventListener("load",o,!1),i.push({img:this,time:+new Date})},s=0;s< n.length;s++)!function(){var e=n[s];e.addEventListener?!e.complete&&e.addEventListener("load",o,!1):e.attachEvent&&e.attachEvent("onreadystatechange",function(){"complete"==e.readyState&&o.call(e,o)})}();alog("speed.set",{fsItems:i,fs:a})}(window,document);
类B对类A中同名函数f1的重载仅根据返回值或调用约定上的区别。
14、error C2660: 'SetTimer' : function does not take 2 parameters

“SetTimer”函数不传递2个参数。
15、warning C4035: 'f……': no return value “f……”的return语句没有返回值。
16、warning C4553: '= =' : operator has no effect; did you intend '='?
没有效果的运算符“= =”;是否改为“=”?
17、warning C4700: local variable 'bReset' used without having been initialized局部变量“bReset”没有初始化就使用。
18、error C4716: 'CMyApp::InitInstance' : must return a value
“CMyApp::InitInstance”函数必须返回一个值。
19、LINK : fatal error LNK1168: cannot open Debug/P1.exe for writing
连接错误:不能打开P1.exe文件,以改写内容。(一般是P1.Exe还在运行,未关闭)
20、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 match enclosing class 成员函数声明了但没有使用
unexpected end of file while looking for precompiled header directive 在寻找预编译头文件时文件意外结束,编译不正常终止可能造成这种情况

Ⅷ C语言编程菜鸟问题:关于编译出错

a = b = 5 ;
是不是没 加;号

Ⅸ C语言编译出错

fatal error C1010: unexpected end of file while looking for precompiled header directive
在工程内添加了新文件(当前工程是简单win32控制台应用,Win32 Console Application添加之后,编译出现fatal error C1010: unexpected end of file while looking for precompiled header directive
Error executing cl.exe. 错误位置提示在新添加的文件中(.h文件),在这种情况下出现这个错误,一般是该文件没有包含StdAfx.h文件,包含即可.

Ⅹ 编译错误怎么解决

如果使用C的编译器,应该是能编译通过 因为C编译器如果没有写明函数的返回值的话默认的函数返回值是int 如果使用C++的编译器就编译不过了 因为C++比C更严格了,不允许默认的int返回值

热点内容
电脑虚拟缓存 发布:2024-09-21 01:24:11 浏览:98
ava编译器怎么样 发布:2024-09-21 01:22:36 浏览:655
国家反诈中心app登录密码是什么 发布:2024-09-21 01:06:42 浏览:138
华为云服务器公网ip 发布:2024-09-21 01:06:31 浏览:346
web服务器面板搭建 发布:2024-09-21 00:44:23 浏览:543
ubuntu交叉编译链 发布:2024-09-21 00:39:36 浏览:14
优酷缓存视频导出 发布:2024-09-21 00:31:37 浏览:874
有线电视的二级密码是多少 发布:2024-09-21 00:31:28 浏览:779
安卓i管家在哪里 发布:2024-09-21 00:29:05 浏览:692
服务器推荐我的世界手机版中国版 发布:2024-09-21 00:26:00 浏览:271