找回密码
 立即注册

QQ登录

只需一步,快速开始

搜索

keil软件连接时出现ERROR L103: EXTERNAL ATTRIBUT DO NOT MATCH PUBLIC

查看数: 10148 | 评论数: 3 | 收藏 0
关灯 | 提示:支持键盘翻页<-左 右->
    组图打开中,请稍候......
发布时间: 2018-5-20 02:10

正文摘要:

各位大佬,我用keil编译源程序时没问题,可是在连接时,出现以下报错*** ERROR L103: EXTERNAL ATTRIBUT DO NOT MATCH PUBLIC。我试过查询一些解决方法如下图,说是改变外部声明来匹配变量声明,然后我在声明全局变 ...

回复

ID:1087948 发表于 2023-7-31 12:31
*** ERROR L103: EXTERNAL ATTRIBUT DO NOT MATCH PUBLIC:这个错误通常发生在你在一个文件中声明了一个全局变量或函数,然后在另一个文件中试图使用它,但是两个地方的声明不匹配。例如,你可能在一个文件中声明了一个返回类型为int的函数,但是在另一个文件中尝试将其作为返回void的函数来调用。

*** ERROR L118: REFERENCE MADE TO ERRONEOUS EXTERNAL:这个错误通常发生在你试图引用一个不存在的外部变量或函数,或者该变量或函数的声明有误。

解决这些问题的方法可能包括:

确保你在所有文件中对同一个全局变量或函数的声明都是一致的。例如,如果你在一个文件中声明了一个返回类型为int的函数,那么你在其他所有文件中都应该将其声明为返回类型为int的函数。

如果你在一个文件中声明了一个全局变量或函数,但是在另一个文件中没有使用extern关键字来引用它,那么你需要添加extern关键字。

检查你的代码,确保你没有试图引用一个不存在的外部变量或函数。

如果你在.h文件中声明了一个全局变量或函数,但是在.c文件中没有找到对应的定义,那么你需要在.c文件中添加对应的定义。

希望这些信息能够帮助你解决问题。如果你还有任何疑问,欢迎随时向我提问。
ID:329679 发表于 2018-5-20 12:47
我已经将问题解决了,通过报错发现错误变量在主函数中,就单独声明该全局变量,并把变量名更爱后,发现可以正常连接。

评分

参与人数 1黑币 +5 收起 理由
15942379927 + 5 淡定

查看全部评分

ID:329679 发表于 2018-5-20 12:44
我已将问题找到了,根据报错,在主函数找到了定义的全局变量,在前面加了extern单独进行声明,并重新改了变量名,现在程序已经能够正常连接了。

小黑屋|51黑电子论坛 |51黑电子论坛6群 QQ 管理员QQ:125739409;技术交流QQ群281945664

Powered by 单片机教程网

快速回复 返回顶部 返回列表