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@

谢谢