OpenEdv-开源电子网

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

keil5 extern关键字编译总是出错

[复制链接]

11

主题

23

帖子

0

精华

初级会员

Rank: 2

积分
78
金钱
78
注册时间
2016-1-13
在线时间
18 小时
发表于 2016-11-8 16:08:09 | 显示全部楼层 |阅读模式
5金钱
extern tme timer;
extern unsigned char CurrentTime[9];

这是我自己写的,用extern关键字定义的全局变量,但是总是出现如下的错误。
“..\OBJ\IIC.axf: Error: L6218E: Undefined symbol CurrentTime (referred from ds3231.o).”
“..\OBJ\IIC.axf: Error: L6218E: Undefined symbol timer (referred from ds3231.o).”

最佳答案

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

extern unsigned char CurrentTime[9]; 这只是声明,还需要 unsigned char CurrentTime[9]; 定义在另一个文件中。 extern unsigned char CurrentTime[9]; 可以声明多次,哪里用就声明 unsigned char CurrentTime[9]; 只能定义一次
正点原子逻辑分析仪DL16劲爆上市
回复

使用道具 举报

22

主题

213

帖子

0

精华

高级会员

Rank: 4

积分
682
金钱
682
注册时间
2015-2-13
在线时间
74 小时
发表于 2016-11-8 16:08:10 | 显示全部楼层

extern unsigned char CurrentTime[9];
这只是声明,还需要
unsigned char CurrentTime[9];
定义在另一个文件中。

extern unsigned char CurrentTime[9]; 可以声明多次,哪里用就声明
unsigned char CurrentTime[9]; 只能定义一次
回复

使用道具 举报

33

主题

481

帖子

2

精华

论坛元老

Rank: 8Rank: 8

积分
5075
金钱
5075
注册时间
2013-10-4
在线时间
654 小时
发表于 2016-11-8 16:13:42 | 显示全部楼层
extern 是用来对全局变量声明的
回复

使用道具 举报

7

主题

51

帖子

0

精华

初级会员

Rank: 2

积分
161
金钱
161
注册时间
2016-10-19
在线时间
36 小时
发表于 2016-11-8 16:18:09 | 显示全部楼层
extern用在变量声明中常常有这样一个作用,你在*.c文件中声明了一个全局的变量,这个全局的变量如果要被引用,就放在*.h中并用extern来声明

你可以看看这个
http://www.cnblogs.com/yc_sunniw ... /07/14/1777431.html
回复

使用道具 举报

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

本版积分规则



关闭

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

正点原子公众号

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

GMT+8, 2025-5-24 21:17

Powered by OpenEdv-开源电子网

© 2001-2030 OpenEdv-开源电子网

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