KeilC编译器常见警告和错误信息解决方案
1.警告280:’i’:unreferenced局部变量
说明局部变量i在函数中不执行任何访问操作。c000023解决方案:消除函数中i 变量的声明
2 警告206:’Music3’:缺少函数原型
说明一下Music3()函数没有声明或者没有外部声明,所以不能被其他函数调用。
解决办法是在程序前端写描述void Music3(void)作为声明。如果是其他文件的函数,必须写成extern void Music3(void),即外部声明。
3 编译:C:\8051\MANN.C
错误:318:无法打开文件“beep.h”
表明在编译C:\8051\MANN.C程序的过程中,main.c在c000023处使用了指令#i ninclude“beep.h”,但找不到解决办法。编写beep.h的包含文件并保存到c:\8051的工作目录中
4 编译:C:\8051\LED.C
错误237:'LedOn':function 已经有主体
注意,LedOn()函数名是重复定义的,即有两个或多个相同的函数名。
解决方案:更正其中一个函数名,使函数名独立
5 ***警告16: 未调用的段,在覆盖过程中被忽略
SEGMENT:PR?_DELAYX1MS?延迟
注意,DelayX1ms()函数如果不被其他函数调用,也会占用程序内存空间。解决办法是去掉DelayX1ms()函数或者使用条件编译#if….#endif。您可以保留该函数而不编译它。
6 ***警告6 :X 数据空间内存重叠
来自: 0025H
TO: 0025H
解释外部数据ROM中0025H的重复定义地址
解:外部数据ROM的定义如下: Pdata unsigned char
7 警告206:’DelayX1ms’: 缺少函数原型
C:\8051\输入.C
错误267 :’DelayX1ms ‘:需要ANSI 风格原型C:\8051\INPUT.C
意思是程序中调用了DelayX1ms函数但没有定义函数,即没有写程序内容,或者定义了函数但没有声明。
解决办法:写完DelayX1ms的内容后,还必须声明或者进行外部声明。您可以在delay.h的包含文件中外部声明它以供其他函数调用。
8 ***警告1:未解析的外部符号
符号:音乐3
MODULE:C:\8051\MUSIC.OBJ(音乐)
***警告2: 参考未解决的外部问题
符号:音乐3
MODULE:C:\8051\MUSIC.OBJ(音乐)
地址:0018H
表示程序中调用了MUSIC 函数,但未将该函数的扩展文件C 添加到工程文件Prj 中进行编译连接。
解决办法:在MUSIC C中设置MUSIC3功能,并将MUSIC C添加到工程文件中。
9 ***错误107:地址空间溢出
SPACE: 数据
SEGMENT: _DATA_GOUP_
长度: 0018H
***错误118: 引用了错误的外部
符号: 成交量
MODULE: C:\8051\OSDM.OBJ (OSDM)
地址: 4036H
注意数据存储空间的地址范围是0~0x7f。当函数中存储公共变量和局部变量的个数时
如果存储模式设置为SMALL,则局部变量将首先使用工作寄存器R2~R7进行临时存储。当内存不够的时候,就会
当数据类型空间中临时存储的数量超过0x7f时,就会出现地址不足的情况。
解决办法是将定义为数据类型的公共变量修改为idata类型的定义。
请说明一下,对编译错误感兴趣的网友能否收集c000023您经常遇到的错误信息并提供最终的解决方案。
解决方案总结分享
10 全局变量的定义没有外部声明:引用了错误的外部
Ram 空间不足:public 指的是忽略段
外部变量:定义时无需添加Externalc000023,但声明时需添加External。
修改数据类型中定义的公共变量为idata类型的定义
11 *** 错误L118: 引用错误的外部
我定义了某个函数或所有变量,想在不同的文件中调用它,但包含的头文件中没有extern 语句,或者只缺少主程序和包含的头文件(EXTERN.definition 语句(功能)) 。
if调试时,if结构中有些语句满足条件但不执行c000023,或者有些语句即使不满足条件也执行,这是因为if和else中有相同的语句,而它们在编译过程中进行了优化。
原文链接:https://www.eeworld.com.cn/mcu/article_2016080728312.html
标签: #c000023
评论列表
Music3()函数没有声明或者没有外部声明,所以不能被其他函数调用。解决办法是在程序前端写描述void Music3(void)作为声明。如果是其他文件的函数,必须写成extern void Music3(void),即外部声明。3 编
2024年06月06日 23:23char7 警告206:’DelayX1ms’: 缺少函数原型C:\8051\输入.C错误267 :’DelayX1ms ‘:需要ANSI 风格原型C:\8051\INPUT.C意思是程序中调用了DelayX1ms函数但没有定义函数,即没有写程序内容,或者定义了函数但没有声明。解决办法
2024年06月06日 23:01