关闭

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

标签: c语言硬件stm32编程
575人阅读 评论(0) 收藏 举报
分类:

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

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

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

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


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


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

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

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


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


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



0
0

查看评论
* 以上用户言论只代表其个人观点,不代表CSDN网站的观点或立场
    个人资料
    • 访问:23405次
    • 积分:389
    • 等级:
    • 排名:千里之外
    • 原创:13篇
    • 转载:13篇
    • 译文:0篇
    • 评论:5条
    文章分类
    最新评论