OpenEdv-开源电子网

 找回密码
 立即注册
正点原子全套STM32/Linux/FPGA开发资料,上千讲STM32视频教程免费下载...
查看: 2932|回复: 9

符号重复定义怎么办?,,,,,,

[复制链接]

8

主题

61

帖子

0

精华

高级会员

Rank: 4

积分
685
金钱
685
注册时间
2019-4-24
在线时间
43 小时
发表于 2019-11-24 12:10:54 | 显示全部楼层 |阅读模式
1金钱
用战舰开发板做实验。在同一个工程中启用LCD和OLED,结果提示..\OBJ\template.axf: Error: L6200E: Symbol asc2_1206 multiply defined (by lcd.o and oled.o).说的就是说符号重复定义了。可是我不明白的是,led.c和oled.c包含的是同一份字体文件,怎么就提示重复了呢?

错误详情

错误详情

最佳答案

查看完整内容[请看2#楼]

这查表不要放头文件, 除非你只有一个C文件会include此头文件, 否则就会多重定义了 把它放C文件去就不会错了
正点原子逻辑分析仪DL16劲爆上市
回复

使用道具 举报

3

主题

1907

帖子

0

精华

论坛元老

Rank: 8Rank: 8

积分
4106
金钱
4106
注册时间
2018-8-14
在线时间
696 小时
发表于 2019-11-24 12:10:55 | 显示全部楼层
这查表不要放头文件, 除非你只有一个C文件会include此头文件, 否则就会多重定义了
把它放C文件去就不会错了
回复

使用道具 举报

6

主题

1127

帖子

0

精华

金牌会员

Rank: 6Rank: 6

积分
1656
金钱
1656
注册时间
2019-8-15
在线时间
102 小时
发表于 2019-11-24 12:55:15 | 显示全部楼层
帮顶           
成功没有捷径
回复

使用道具 举报

8

主题

293

帖子

0

精华

金牌会员

Rank: 6Rank: 6

积分
1001
金钱
1001
注册时间
2018-8-16
在线时间
327 小时
发表于 2019-11-24 13:24:26 | 显示全部楼层
是不是两个文件里都定义了asc2_1206这个数组?
回复

使用道具 举报

120

主题

7878

帖子

13

精华

资深版主

Rank: 8Rank: 8

积分
12012
金钱
12012
注册时间
2013-9-10
在线时间
427 小时
发表于 2019-11-24 13:50:59 | 显示全部楼层
删掉其中一个,公用的话,另外一个里边extern一下即可
回复

使用道具 举报

3

主题

7

帖子

0

精华

初级会员

Rank: 2

积分
65
金钱
65
注册时间
2018-11-22
在线时间
14 小时
发表于 2019-11-24 14:02:41 | 显示全部楼层
提示很明白了,变量asc2_1206 在lcd.o 和 oled.o两个文件中重复了,全局变量一个工程中不能出现重复的名,如果你两个变量内容一样的话,删掉一个,比如删掉 oled.c中的asc2_1206 变量,然后引用"lce.h",在lcd.h中extern asc2_1206 变量
回复

使用道具 举报

51

主题

2166

帖子

2

精华

论坛元老

Rank: 8Rank: 8

积分
10653
金钱
10653
注册时间
2017-4-14
在线时间
2780 小时
发表于 2019-11-24 15:09:07 | 显示全部楼层
字库放到.c .h声明的格式
回复

使用道具 举报

8

主题

61

帖子

0

精华

高级会员

Rank: 4

积分
685
金钱
685
注册时间
2019-4-24
在线时间
43 小时
 楼主| 发表于 2019-11-25 09:40:51 | 显示全部楼层
brucewoo 发表于 2019-11-24 13:24
是不是两个文件里都定义了asc2_1206这个数组?

看图,asc2_1206是在oledfont.h文件里面定义的的,整个工程只有这个文件定义了字体。lcd.c和OLED.c都是包含oledfont.h来获取字体信息。
回复

使用道具 举报

8

主题

61

帖子

0

精华

高级会员

Rank: 4

积分
685
金钱
685
注册时间
2019-4-24
在线时间
43 小时
 楼主| 发表于 2019-11-25 09:41:25 | 显示全部楼层
edmund1234 发表于 2019-11-24 12:10
这查表不要放头文件, 除非你只有一个C文件会include此头文件, 否则就会多重定义了
把它放C文件去就不会 ...

ok,明白了。
回复

使用道具 举报

8

主题

61

帖子

0

精华

高级会员

Rank: 4

积分
685
金钱
685
注册时间
2019-4-24
在线时间
43 小时
 楼主| 发表于 2019-11-25 09:41:57 | 显示全部楼层
edmund1234 发表于 2019-11-24 12:10
这查表不要放头文件, 除非你只有一个C文件会include此头文件, 否则就会多重定义了
把它放C文件去就不会 ...

ok,明白了。
回复

使用道具 举报

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

本版积分规则



关闭

原子哥极力推荐上一条 /2 下一条

正点原子公众号

QQ|手机版|OpenEdv-开源电子网 ( 粤ICP备12000418号-1 )

GMT+8, 2025-5-25 08:16

Powered by OpenEdv-开源电子网

© 2001-2030 OpenEdv-开源电子网

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