找回密码
 立即注册

QQ登录

只需一步,快速开始

搜索
查看: 8662|回复: 3
打印 上一主题 下一主题
收起左侧

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

[复制链接]
跳转到指定楼层
楼主
30黑币
各位大佬,我用keil编译源程序时没问题,可是在连接时,出现以下报错*** ERROR L103: EXTERNAL ATTRIBUT DO NOT MATCH PUBLIC。我试过查询一些解决方法如下图,说是改变外部声明来匹配变量声明,然后我在声明全局变量的时候加了extern,但是之后连接时仍然还会出现上面的报错。              不幸的是,在用了extern声明全局变量之后,又出了一个新的报错*** ERROR L118: REFERENCE MADE TO ERRONEOUS EXTERNAL,我在.h文件中查看了,也没发现外部参数或函数被覆盖。希望有大佬能帮忙解答一下,该如何解决。

图片1.png (23.55 KB, 下载次数: 106)

图片1.png
分享到:  QQ好友和群QQ好友和群 QQ空间QQ空间 腾讯微博腾讯微博 腾讯朋友腾讯朋友
收藏收藏 分享淘帖 顶 踩1
回复

使用道具 举报

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

使用道具 举报

板凳
ID:329679 发表于 2018-5-20 12:47 | 只看该作者
我已经将问题解决了,通过报错发现错误变量在主函数中,就单独声明该全局变量,并把变量名更爱后,发现可以正常连接。

评分

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

查看全部评分

回复

使用道具 举报

地板
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文件中添加对应的定义。

希望这些信息能够帮助你解决问题。如果你还有任何疑问,欢迎随时向我提问。
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

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

Powered by 单片机教程网

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