c51编程编译警告
A. c51编程警告*** WARNING L16: UNCALLED SEGMENT, IGNORED FOR OVERLAY PROCESS
大哥。。。你的void main拼错了。。。拼到了mian了。。。还有
提醒你一句,D1=0;后面最好加一句while(1);
养成良好习惯
B. keil c51编译出现警告
1主函数(main)写重复了。
2
地址空间溢出
C. 用keil编写的 C51错误 *** WARNING L1: UNRESOLVED EXTERNAL SYMBOL SYMBOL: C_START
是试过了,KEil编译通过,没有问题,可能是你Keil设置的问题,
解决办法:
1.是文件没有添加到工程里。
2.可能是因为存在没有被调用的已经定义的函数。
3.不知道你有没有把Sourcegroup组下面的A51.C删掉,如果没有删,在A51.c上点右键,选择removefile"".
4.建一个新的c文件,里面写一个空的函数,把该文件添加到project中,注意该文件不能再选generateassemblerSRCfile和assembleSRCfile选项。重新编译工程,如果警告该函数没被调用,在主文件中调一下。
5.建一个新的c文件,把主文件中的几个函数移至该文件,把该文件添加到project中,注意该文件不能再选generateassemblerSRCfile和assembleSRCfile选项。重新编译工程。
其他:UNRESOLVEDEXTERNALSYMBOL说明连接的时候没有找到外部变量
externxdataunsignedcharRxPnt;只是说明引用外部变量,并不是实际的声明。
应该在某个.c文件里有xdataunsignedcharRxPnt才行。
extern中对这个变量做了声明,说这个变量将会在这个文件中用到,但并没有定义
也就是那个变量并没有真实存在.
需要要某个地方定义一下,
也有可能是你定义了,但是被条件编译给去掉了也有可能.具体查一下工程里的所有源文件看看
D. c51编译过程中常见的警告有哪些
1.
*** WARNING L2: REFERENCE MADE TO UNRESOLVED EXTERNAL
在main函数里面使用了某个变量,但没有申明。或者申明了没有实体。也就是说对于这个参数,编译器无法解析
2.
*** WARNING L1: UNRESOLVED EXTERNAL SYMBOL
头文件定义时没有加上ifndef
把gui.h文件按如下格式应该就没问题了
//gui.h
#ifndef GUI_H_HFILE
#define GUI_H_HFILE 1
//此处放原来的头文件内容
//
#endif
3.
*** WARNING L16: UNCALLED SEGMENT, IGNORED FOR OVERLAY PROCESS
有些已经定义的函数或者变量没有使用。
这些是在编译过程中较常见的,以后遇到了也会继续补充。相互勉励吧,加油
E. C51编译警告warning C182: pointer to different objects
以前听说过指向指针的指针,和二维数组的数组名是有区别的,不知道,只是不是同样的原因。
F. keil c51 问题:程序无法编译
你那程序也不长啊,直接把程序发上来,发什么图片哪?
第二个图片显示的,没有错误了,只有一个警告,是因为调用那个延时子程序delay( ) 时,打错了一个字母,打成dalay 了。
另外提示:保存C程序的文件夹,最好不 要用汉字,而且文件夹的层数不要太多了,你这一共是五层文件夹,有两层还是汉字,编译时容易出错的。
G. C51编程,REFERENCE MADE TO UNRESOLVED EXTERNAL.
C51编译警告“*** WARNING L1: UNRESOLVED EXTERNAL SYMBOL”
*** WARNING L1: UNRESOLVED EXTERNAL SYMBOL
SYMBOL: ?C_START
MODULE: .STARTUP.obj (?C_STARTUP)
*** WARNING L2: REFERENCE MADE TO UNRESOLVED EXTERNAL
SYMBOL: ?C_START
MODULE: .STARTUP.obj (?C_STARTUP)
ADDRESS: 000DH
问题原因:没把C文件添加到项目中
解决方法:把新建的.c文件添加的项目文件中
c/c++语言中有很多地方要用到extern,但是如果没有真正的了解它的意义,会给编程带来很大的麻烦,为了使大家少走弯路,特祥细的说明一下。
对于比较小的程序,一般只有一个c文件和一个头文件,全局变量我们通常会直接定义在c文件中,在程序之前加int i定义。如果要在头文件中定义有以下两种方法:用extern来声明:extern int i;这一句只是对变量i进行声明,在c文件的程序之前必须加上int i进行定义。extern int i=0;这一句声明和定义都做了。
对于大一点的程序,有很多c文件和头文件,这个时候全局变量就必须在头文件中声明,然后在一个c文件中定义。如果在头文件中定义,则编译的时候会出现重复定义的错误。如果只有头文件中声明就会出现没有定义有警告。
这四个警告就是变量k在头文件中有声明,但是没有定义,只需在某一个c文件的程序之前定义一下即可。
H. 51单片机汇编 警告 WARNING L5: CODE SPACE MEMORY OVERLAP 求解答
编译没有问题。
你的问题可能在于:工程中还有另一个文件,占用了0000H开始的地址,如文件:STARTUP.A51
请在Add files to group...中删除此类文件即可。