2024年3月14日发(作者:)
Keil C编译器常见警告与错误信息的解决方法
g 280:’i’:unreferenced local variable
说明
局部变量i在函数中未作任何的存取操作
解决方法消除函数中
i
变量的宣告
2
Warning 206:’Music3’:missing function-prototype
说明Music3( )函数未作宣告
或未作外部宣告所以无法给其他函数调用
解决方法将叙述
void Music3(void)
写在程序的最前端作宣告如果是其他文件的函数
则要写成extern void Music3(void),即作外部宣告
3Compling :C:8051MANN.C
Error:318:can’t open file ‘beep.h’
说明在编译C:8051MANN.C程序过程中由于main.c用了指令#include “beep.h”,但
却找不到所致
解决方法编写一个beep.h的包含档并存入到c:8051的工作目录中
4Compling:C:8051LED.C
Error 237:’LedOn’:function already has a body
说明
LedOn( )函数名称重复定义
即有两个以上一样的函数名称
解决方法修正其中的一个函数名称使得函数名称都是独立的
5***WARNING 16:UNCALLED SEGMENT,IGNORED FOR OVERLAY PROCESS
SEGMENT: ?PR?_DELAYX1MS?DELAY
说明
DelayX1ms( )
函数未被其它函数调用
也会占用程序记忆体空间
解决方法去掉DelayX1ms( )函数或利用条件编译#if …..#endif,可保留该函数并不编
译
6***WARNING 6 :XDATA SPACE MEMORY OVERLAP
FROM : 0025H
TO: 0025H
说明外部资料ROM的0025H重复定义地址
解决方法外部资料ROM的定义如下
Pdata unsigned char XFR_ADC _at_0x25
其中XFR_ADC变量的名称为0x25,请检查是
否有其它的变量名称也是定义在0x25处并修正它
7WARNING 206:’DelayX1ms’: missing function-prototype
C:8051INPUT.C
Error 267 :’DelayX1ms ‘:requires ANSI-style prototype C:8051INPUT.C
函数但该函数没定义即未编写程序内容或函数说明程序中有调用
DelayX1ms
已定义但未作宣告
解决方法编写
DelayX1ms
的内容编写完后也要作宣告或作外部宣告可在
delay.h
以便其它函数调用的包含档宣告成外部
8***WARNING 1:UNRESOLVED EXTERNAL SYMBOL
SYMBOL:MUSIC3
MODULE:C:(MUSIC)
***WARNING 2:REFERENCE MADE TO UNRESOLVED EXTERNAL
SYMBOL:MUSIC3
MODULE:C:(MUSIC)
ADDRESS:0018H
函数但未将该函数的含扩档
说明
程序中有调用MUSIC
C
加入到工程档
Prj
作编译和连接
解决方法设MUSIC3函数在MUSIC
C里
将MUSIC
C添加到工程文件中去
9***ERROR 107:ADDESS SPACE OVERFLOW
SPACE: DATA
SEGMENT: _DATA_GOUP_
LENGTH: 0018H
***ERROR 118: REFERENCE MADE TO ERRONEOUS EXTERNAL
SYMBOL: VOLUME
MODULE: C:(OSDM)
ADDRESS: 4036H
说明data存储空间的地址范围为0~0x7f,当公用变量数目和函数里的局部变量
如果存
储模式设为
SMALL
则局部变量先使用工作寄存器
R2~R7
作暂存当存储器不够用时则会
以data型别的空间作暂存的个数超过0x7f时就会出现地址不够的现象
解决方法将以data型别定义的公共变量修改为idata型别的定义
说明如对编译出错感兴趣的网友能否把你们常遇到的错误信息收集起来并提出最终的
解决办法加以归纳以期共享
如有疑问请来信通知
Email:chenly@omex_1@
谢谢
发布评论