keil报错: ERROR 118 (ERRONEOUS REFERENCE TO EXTERNAL VARIABLES) 解决方案及原因
ERRONEOUS REFERENCE TO EXTERNAL VARIABLES
- 問題:REFERENCE MADE TO ERRONEOUS EXTERNAL
- 解決方案:
問題:REFERENCE MADE TO ERRONEOUS EXTERNAL
這是某同學(xué)在keil里面C51編程時發(fā)來的錯誤信息,搜遍百度發(fā)現(xiàn)沒有有效的回答,結(jié)果在keil官網(wǎng)上寫的明明白白.
這是官網(wǎng)解釋鏈接:
http://www.keil.com/support/docs/213.htm
里面說
Your program is technically correct. The problem lies in the object module format of the object files created by the Keil C Compiler. The object files are created according to the OMF-51 object module format specified by Intel. This object module format does not allow lowercase variable names. Therefore, all public variables are treated as uppercase. When you create 2 public symbols with the same name but with different cases, the linker complained about ERRONEOUS EXTERNALS. Change the name of one of the variables to avoid this problem.
簡單翻譯一下,就是:為了遵循某個規(guī)則,規(guī)定所有的全局變量都視為大寫(uppercase),所以除了大小寫都一樣的變量或函數(shù)(全局的)在一個工程中出現(xiàn)時,就會發(fā)生這樣的錯誤.
解決方案:
很簡單,報錯提示的symbol就是命名有問題的變量或函數(shù),只要把相似變量/函數(shù)名中的一個改個名就可以了~而不是僅僅只有大小寫不一樣.
最后希望大家都能 0 error(s), 0 warning(s)!
總結(jié)
以上是生活随笔為你收集整理的keil报错: ERROR 118 (ERRONEOUS REFERENCE TO EXTERNAL VARIABLES) 解决方案及原因的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 绘制简单的美国疫情地图(plotlty+
- 下一篇: 将JBoss启动做成Windows的系统