IAR编译出现 Error[Li006]: duplicate definitions for 错误提示

18620阅读 0评论2014-11-22 sunhenu
分类:嵌入式

 今天在进行代码测试编译时出现了重复定义的错误,提示在对象文件led.o和usart.o中出现了上述变量重复定义的问题,可仔细检查了此变量并无多次定义,茫然无头绪,随对代码进行进一步的核查,发现原来是管脚出现了重复定义的问题:串口1重映射后的管脚和之前用做LED片选的管脚冲突了,随将重映射改回,一切正常,可纳闷为啥会报一个无关变量的重复定义呢?

另外补充一点:

    全局变量的定义,或者引用,放在.C文件中,别放在.h文件中,

    关于变量的声明,外部声明时,不可以再赋值。例:

错误代码:

    int i=0;

    extern int i= 0;

正确代码:

    int i=0;

    extern int i;




今天也出现这个错误查了半天也没有找到问题,因为变量没有重复定义的,最后发现是“ 关于变量的声明,外部声明时,不可以再赋值。”这个问题,我在extern 声明变量的时候给它又赋值了。

上一篇:在ucos系统上使用USART1串口中断函数处理串口数据
下一篇:max5477数字电位器使用过程遇到的困难1