导航:首页 > 源码编译 > 编译不成功的原因

编译不成功的原因

发布时间:2023-01-30 10:35:01

① 为什么编译老出错,求大神赐教

请说详细一点,你用的是什么编译器?或者是用什么软件写的?
编译老出错的原因猜测大致如下:
1.发现错误的代码,点击编译提示窗口的代码行号,找出错误的代码并修正;
2.编译老出错,是因为编译器设置错误,或者是未注册,破解版不稳定导致;
3.其它原因未知,卸载干净重新安装或者从其它的网站下载即可解决。

② 我在linux环境下怎么就是编译不成功

编译不成功多半软件功能开关设置及依赖关系不支持。
首先要了解编译的过程,真正了解了编译的过程后就可以比较轻松的编译各种软件了。
1、configure,可以在configure 执行一下./configure --help来大致了解一下该软件的一些开关和支持的性能,然后根据使用需要来设置需要开启的性能和需要关闭的性能,以及需要哪些支持库等等,然后再指定一下编译路径,做完这一切后,满屏幕的check ....就开始了,这就是configrue的过程,和所做的事情
2、make,其实这一步才是真正的编辑步骤,而configure只是做一个环境的check,检查系统环境及lib是不是对上一步所开启的参数支持,只有check不出错,也就是configure不出错,就可以比较顺利的进行编译也就是make
3、make install 安装,当成功编译后就可以通过make install进行安装了,安装完成后就可以使用了。
比较容易报错的地方就是configure这一步,因为这一步会检查软件及在configure这一步的设置开关功能中需要的依赖关系,并对现行系统进行检查,尤其是最小化安装的系统,报错会比较多,可根据具体报错内容来安装相应的安装包来完成软件的依赖,直到check全部通过。有些软件在make时也需要调用一些库,具体要看软件的reademe来了解具体编译要求。如果再不行,就只能网上寻求帮助了。
另外,编译也是一个经验活,只编译得多了,对一些常见的错误就会比较了解了,必定软件依赖的库常见的就那几个,建议每编译一款软件做一个小笔记,把处理的错误或遇到的情况记录下来,这样以后再编译时,会事半功倍!

③ 为啥编译不成功啊

编译不成功有很多原因,比如一开始要检查自己的编译环境有没有问题,然后检查自己写的代码有没有问题!

④ 编译错误,怎么回事

关于编译问题,如果说是编译错误发生在自己编写源程序的过程中的话,那么问题的原因还是比较复杂的。通常关于用户编写的源程序的编译出错问题,这是一个很复杂的问题。因为编译错误有很多种。例如:语法错误、系统库连接错误、语义错误、数组越界、或者内存越界等等。

通常语法错误是最好解决的,因为源程序的语法出错了,连编译这一关都通不过,并且会告诉你在哪一行出错了,这时候是最容易调试程序的。最难调试的就是:源程序虽然编译通过了,但是程序的运行结果却是错误的,这种是最难调试的。所以说,你必须要把详细的出错信息写出来,别人们才好帮助你进行分析。

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

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

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

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

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

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

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

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

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

解决语法错误

常见语法错误:

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

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

3)关键字拼写错误。

较难认定的典型错误:

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

解决上下文关系错误

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

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

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

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

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

如何看待编译警告

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

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

常见警告:

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

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

⑥ 我编写了个简单的代码.怎么总是编译不成功阿

一种可能 就是你的代码有问题
比如 符号错了,大小写错了,或者半角全角字符出错等等。

还有一种可能 就是你的编译器有问题

具体的要看你的错误提示的。

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

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

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

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

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

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

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

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

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

解决语法错误

常见语法错误:

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

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

3)关键字拼写错误。

较难认定的典型错误:

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

解决上下文关系错误

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

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

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

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

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

如何看待编译警告

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

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

常见警告:

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

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

⑧ C语言为什么编译不了。

可能的原因:
1、如果你用的是c语言编译器,那么io库只有stdio.h,没有iostream。iostream是c++的标准库里的。
2、按照c++风格,添加头文件的预编译指令应该是#include
,没有“.h”
3、如果使用iostream里的类,别忘了添加using
namespace
std;语句

⑨ 为啥编译不出来

您好!
这个问题是因为您的程序出现了错误,编译器报错,所以编译不成功。
您可以修改错误程序,然后再次编译。

⑩ 请教无法编译是怎么回事

“无法编译”的原因可能很多种。能详述一下你的问题吗?

在有更多的信息之前,大概列一下“无法编译”的可能情况:

  1. 找不到“编译器”。这种通常是在“命令行”或者“shell”情况下出现。在“集成环境(IDE)下通常较少出现。

    解决方法:(1)安装必要的编译器。(2)如果已有编译器,把编译器的可执行文件的路径,加入环境变量“PATH”。(3)加入必要的其它设置,如“链接库”的位置。

  2. 源程序有错误。

    解决办法:根据出错信息,排除源程序的错误。

  3. 缺乏必要的“链接库”。

    解决方法:找到需要的链接库,并适当安装。

最好能针对你实际的问题,对症下药。有问题可以继续交流,谢谢。

阅读全文

与编译不成功的原因相关的资料

热点内容
编程猫拔萝卜文字评价模板 浏览:246
cmdjava命令 浏览:237
扫描版pdf转文字版 浏览:532
单片机专用寄存器 浏览:495
学习python的手册 浏览:676
vue编译成js文件 浏览:90
给单片机供电的电池 浏览:341
什么app是分享教育的 浏览:899
可视化编程java 浏览:83
人工智能温控器算法 浏览:376
大号文件夹多少钱一个 浏览:572
pdf阅读器打开文件 浏览:98
winrar解压日文文件 浏览:38
什么app可以看广东珠江电视台 浏览:75
linux移动文件位置 浏览:144
循环码与卷积码编译原理 浏览:808
进化算法和启发式算法的区别 浏览:602
android组件是什么 浏览:973
安卓手机微信怎么同步信息 浏览:183
小人pdf 浏览:806