欢迎光临散文网 会员登陆 & 注册

Keil 报错 ERROR 118:ERRONEOUS REFERENCE TO EXTERNAL VARIABLES

2022-09-16 01:04 作者:技术流阿宅  | 我要投稿

问题描述:

*** ERROR 118: REFERENCE MADE TO ERRONEOUS EXTERNAL

    SYMBOL:  JUNK

    MODULE:  C:\MYCODE\J1.OBJ (J1)

    ADDRESS: 0020H

官网解释链接:http://www.keil.com/support/docs/213.htm

答:

您的程序在技术上是正确的。问题在于 Keil C 编译器创建的对象文件的对象模块格式。

对象文件是根据英特尔指定的 OMF-51 对象模块格式创建的。此对象模块格式不允许使用小写变量名称。因此,所有公共变量都被视为大写。当您创建 2 个具有相同名称但具有不同大小写的公共符号时,链接器会抱怨“错误的外部”。

更改其中一个变量的名称以避免此问题。

总结一下就是:为了遵循某个规则,规定所有的全局变量都视为大写,所以除了大小写都一样的变量或函数(全局的)在一个工程中出现时,就会发生这样的错误。

解决方法:

很简单,报错提示的symbol就是命名有问题的变量或函数,只要把相似变量/函数名中的一个改个名就可以了,而不是仅仅只有大小写不一样。






Keil 报错 ERROR 118:ERRONEOUS REFERENCE TO EXTERNAL VARIABLES的评论 (共 条)

分享到微博请遵守国家法律