IAR ERROR --- [Li006]
今天移植代码时遇到一个比较奇葩的问题,记录如下:
Error[Li006]: duplicate definitions for "Uart3"; in "E:\IAR_1768Pro_PCB799\Debug\Obj\Uart3_init.o", and "E:\IAR_1768Pro_PCB799\Debug\Obj\uModemG600.o"
重复定义 变量 Uart3
可是,uModemG600.c 文件中没有 Uart3 这个变量 ,只有 uart3.h 这个头文件,问题就出现在在这头文件中。
Uart3 这个变量的定义就放在 uart3.h 中,而且 uart3.h 在uart3.c 和 uModemG600.c 中都有#include , uart3.h 也未做条件编译,导致uart3.h 重复编译, 变量重复定义。
//===================问题描述完毕,一下是个人观点======================
我个人的做法是,变量/函数 定义在 *.c 文件中,变量/函数声明在 *.h 文件中, 并且 *.h 文件加编译条件,放置重复包含,格式如下:
user.c
//user.c file #include <stdio.h>
#include <string.h>
#include "user.h" signed char g_a = ;
unsigned char g_b = ;
signed int g_c = ; void fun1(void)
{
//do something
} void fun2(void)
{
//do something
}
user.h
#ifndef _USER_H_
#define _USER_H_ extern signed char g_a;
extern unsigned char g_b;
extern signed int g_c; void fun1(void);
void fun2(void); #endif
IAR ERROR --- [Li006]的更多相关文章
- Error[Li006]: duplicate definitions for "******"
今天参考别人程序写程序时出现Error[Li006]: duplicate definitions for "******". 参考程序中将变量和数据定义在(.h)文件中,我也就直 ...
- IAR:Error [Li005]:no definition for"***" 问题之连接
对于 IAR 出现的 Error[Li005] 链接错误,网上已经给出了比较详尽的解决方法,而对于这次记录,主要是记录解决问题的思路. 网上给出的方法:http://blog.csdn.net/yue ...
- Keil和IAR——使用笔记
1. 几个宏的定义 Keil和IAR均用到以下三种宏定义,分别是:USE_STDPERIPH_DRIVER——表示使用ST提供的标准外设固件库:STM32F40_41xxx——作为芯片的判断:VECT ...
- IAR EWAR 内联汇编 调用外部函数 Error[Og005], Error[Og006]
How do I call a C function in another module from inline assembler in IAR EWARM? I have a bit of ass ...
- IAR EWAR 内联汇编 Error[Og010], Error [Og005], Error [Og006]
Error [Og005] + [Og006] when using inline assembler EW targets: 430, ARM, AVR EW component: C/C++ co ...
- IAR FOR STM8S 错误 An error occurred while retrieving GDI features: gdi-error [40201]解决方法
今早使用IAR调试编译调试一个工程,发现IAR竟然出现如下错误信息 An error occurred ]: Can't access configuration database 在网上查看了一下, ...
- STM32+IAR 解决Error[Pe147]: declaration is incompatible with "__nounwind __interwork __softfp unsigned
在IAR中编译STM32工程,遇到 Error[Pe147]: declaration is incompatible with "__nounwind __interwork __soft ...
- IAR 编译错解决Error[e16]: Segment NEAR_Z (size: 0x16d align: 0) is too long for segment definition. At least 0x83 more bytes needed.
Error[e16]: Segment NEAR_Z (size: 0x16d align: 0) is too long for segment definition. At least 0x83 ...
- IAR错误Error[e16]: Segment ISTACK (size: 0xc0 align: 0) is too long for segment definition. At least 0xd more bytes needed. The problem occurred while processing the segment 的解决办法
IAR for 8051 IDE version 9.10.1编译阿莫单片机的cc2541程序osal第一节教程出现错误如下 出错的愿意是iar设置错误.所以需修改IAR的设置. 解决办法如下: 即可 ...
随机推荐
- "jobTracker is not yet running"(hadoop 配置)
今天自己尝试做配置了一下hadoop,环境是ubuntu13.10+jdk1.7.0_51+hadoop version1.2.1. 主要过程主要参考http://blog.csdn.net/hitw ...
- BloomFilter——读数学之美札记
之前接触过bitmap,读吴军先生的数学之美,看到了一个更强大的数据结构,布隆过滤器(Bloomfilter),赶紧记下来吧,忘了怪可惜的. bitmap的使用是很有局限性的,往往只能用于海量数值型数 ...
- 使用ReactiveCocoa开发RSS阅读器
目前已经完成的功能有对RSS的解析和Atom解析,RSS内容本地数据库存储和读取,抓取中状态进度展示,标记阅读状态,标记全部已读等.这些功能里我对一些异步操作产生的数据采用了ReactiveCocoa ...
- K.Bro Sorting
Time Limit: 2000/2000 MS (Java/Others) Memory Limit: 512000/512000 K (Java/Others)Total Submissio ...
- js中将字符串转换成json的方式
1.eval 方式解析,实际中用的还是比较少 function evalJson(str){ var json = eval('(' + str + ')'); return json; } 2.使用 ...
- linux-统计行数
wc -l ls |wc -l 查看文件夹下的行数 cat/less/more +文件名|wc -l
- 命名管道FIFO
首先我得检讨一下自己,这几天有些颓呀,打不起精神,板子出了点问题,果真自学还是很困难呀,硬件方面难解决呀,理想与现实还是很有差距的,伤透了,凌乱了. 一直在理解进程间通信的问题.发现上次忽略了一个问题 ...
- Activity保持关闭不销毁
activity按back键 消失但是不销毁的实现 重新定义finish()方法: @Override public void finish() { // TODO Auto-ge ...
- 解决python 提示 SyntaxError: Missing parentheses in call to 'print'
刚刚学习python,练习他的输出,发现输出一个常量时报错了,如下: 发现是因为python2.X版本与python3.X版本输出方式不同造成的在python3.X的,输入内容时都要带上括号pytho ...
- Jersey(1.19.1) - Rules of Injection
Previous sections have presented examples of annotated types, mostly annotated method parameters but ...