IAR 连接源文件时出现duplicate definitions错误

Duplicate definitions从字面上看就是重复定义的意思。

那么,为什么会出现这个问题呢?原因就是多个文件定义全局变量的时候一个变量的定义间接地出现在了多个地方。

下面详细说一下出现错误的原因吧!

我在下面的头文件中定义了一个全局变量flag.


然后我把它包含在主文件中:


这样,flag在文件stm32f4xx_it.h中定义了一次,然后被main.c包含进来,又被定义了一次,所以就出现错误。

下面说说怎么解决这个错误吧!

首先,要知道的是全局变量的定义要放在.c文件里而不是.h(头文件)中。同时删除头文件中变量的定义。


同时在.h(头文件)中说明变量一下为extern,不然编译的时候会出现未定义错误。(注意:这里说明变量的时候不能再给他赋值,会出错。)


这样,错误就化解了。希望能帮到大家。



评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值