找回密码
 立即注册

QQ登录

只需一步,快速开始

搜索

[新人求助]编译报错ERROR L104: MULTIPLE PUBLIC DEFINITIONS

查看数: 2888 | 评论数: 10 | 收藏 0
关灯 | 提示:支持键盘翻页<-左 右->
    组图打开中,请稍候......
发布时间: 2022-2-8 13:16

正文摘要:

各位大神好,本人单片机+编程新手,今日编写程序遇到了这个错误,百度查了一下说是变量table重复定义,但是我代码涉及到table变量的只在一个头文件里有,这是怎么一回事呢?因为已经纠结一段时间还是没能搞定,特来 ...

回复

ID:1004377 发表于 2022-2-11 15:51
wojiaoguogai 发表于 2022-2-9 14:01
你定义在头文件,就相当于在每个包含这个.h的.c文件里面全部定义了一遍

明白了!非常感谢你的解答!
ID:415064 发表于 2022-2-9 14:01
你定义在头文件,就相当于在每个包含这个.h的.c文件里面全部定义了一遍
ID:1004377 发表于 2022-2-9 11:35
13205495918 发表于 2022-2-8 16:09
smg这个h文件的数组前加个extern

啊你就是给我发短消息的那位好心大佬!我昨天顺着你的思路去修改了,最后运行成功了,非常感谢!
ID:1004377 发表于 2022-2-9 11:34
devcang 发表于 2022-2-8 15:59
变量定义在.c中,然后在.h中 extern 全局变量

嗯嗯!谢谢你!你的方法是对的,我修改以后运行成功了!
ID:1004377 发表于 2022-2-9 11:33
woshige 发表于 2022-2-8 14:48
你这个table数组不要定义在头文件里面,要定义也可以,但是不要给初值。给你提供说个方法你修改试一下,把t ...

感谢大佬!你的方法是对的,我昨天修改了这个定义就运行成功了!
ID:1004377 发表于 2022-2-8 17:02
刚刚收到了一位好心大佬的短消息,说是在.h的数组定义那里要加上extern,我去修改了一下我的代码,第一次是直接加了extern,但是编译仍然不成功,于是我就顺着这个思路,干脆把数组定义放在了.c文件中,并再在smg.h中声明,这下就可以了!
非常感谢那位大佬的指引,可惜我这里还不能发短消息所以没法直接回复,希望你能看到!
ID:908826 发表于 2022-2-8 16:09
smg这个h文件的数组前加个extern
ID:277550 发表于 2022-2-8 15:59
变量定义在.c中,然后在.h中 extern 全局变量
ID:1004377 发表于 2022-2-8 15:40
希望能有大佬给我一个方向,第一次遇到这个问题确实有点迷茫
ID:174087 发表于 2022-2-8 14:48
你这个table数组不要定义在头文件里面,要定义也可以,但是不要给初值。给你提供说个方法你修改试一下,把table定义并初始化在smg.c文件里面,然后在smg.h中extern一下,这样编译应该就可以了。

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

Powered by 单片机教程网

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