Blank_CN的专栏

西蜀子云亭,南阳诸葛庐,何陋之有?

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

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

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

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

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


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


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

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

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


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


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



阅读更多
个人分类: 嵌入式
想对作者说点什么? 我来说一句

没有更多推荐了,返回首页

加入CSDN,享受更精准的内容推荐,与500万程序员共同成长!
关闭
关闭