IAR 单元测试时报告重复定义错误
2016-04-27 09:32
330 查看
使用C++test执行单元测试时出错,错误报告参考如下:
Error[Li006]: duplicate definitions for "AC_DEMAND_Buf"; in "C:\Users\kwang\par
asoft\workspace\.cpptest\Affair\file-data\event_app.cb7fd41c1\tested\
harness_event_app.o", and "C:\Users\kwang\parasoft\workspace\.cpptest
\Affair\file-data\data_store_app.c8b3a10ac\tested\harness_data_store_
app.o"
Error[Li006]: duplicate definitions for "AC_POWER_1M_Buf"; in "C:\Users\kwang\p
arasoft\workspace\.cpptest\Affair\file-data\event_app.cb7fd41c1\teste
d\harness_event_app.o", and "C:\Users\kwang\parasoft\workspace\.cppte
st\Affair\file-data\data_store_app.c8b3a10ac\tested\harness_data_stor
e_app.o"
Error[Li006]: duplicate definitions for "AC_POWER_5M_Buf"; in "C:\Users\kwang\p
arasoft\workspace\.cpptest\Affair\file-data\event_app.cb7fd41c1\teste
d\harness_event_app.o", and "C:\Users\kwang\parasoft\workspace\.cppte
st\Affair\file-data\data_store_app.c8b3a10ac\tested\harness_data_stor
e_app.o"
原因分析:
典型地违反了规则MISRA2004-8_5 “在头文件中不应定义函数和对象”。当一个这样定义的头文件被同时在不同的源码文件中时,链接一般就会报告存在重复定义的错误。
解决方式:
在头文件中将这些定义声明为extern方式,并且在对应的源码文件中去定义变量。
Error[Li006]: duplicate definitions for "AC_DEMAND_Buf"; in "C:\Users\kwang\par
asoft\workspace\.cpptest\Affair\file-data\event_app.cb7fd41c1\tested\
harness_event_app.o", and "C:\Users\kwang\parasoft\workspace\.cpptest
\Affair\file-data\data_store_app.c8b3a10ac\tested\harness_data_store_
app.o"
Error[Li006]: duplicate definitions for "AC_POWER_1M_Buf"; in "C:\Users\kwang\p
arasoft\workspace\.cpptest\Affair\file-data\event_app.cb7fd41c1\teste
d\harness_event_app.o", and "C:\Users\kwang\parasoft\workspace\.cppte
st\Affair\file-data\data_store_app.c8b3a10ac\tested\harness_data_stor
e_app.o"
Error[Li006]: duplicate definitions for "AC_POWER_5M_Buf"; in "C:\Users\kwang\p
arasoft\workspace\.cpptest\Affair\file-data\event_app.cb7fd41c1\teste
d\harness_event_app.o", and "C:\Users\kwang\parasoft\workspace\.cppte
st\Affair\file-data\data_store_app.c8b3a10ac\tested\harness_data_stor
e_app.o"
原因分析:
典型地违反了规则MISRA2004-8_5 “在头文件中不应定义函数和对象”。当一个这样定义的头文件被同时在不同的源码文件中时,链接一般就会报告存在重复定义的错误。
解决方式:
在头文件中将这些定义声明为extern方式,并且在对应的源码文件中去定义变量。
相关文章推荐
- Shiro workshop
- easyui DataGrid 的 Checkbox 选择多行
- 定时任务,AlarmManager使用
- javamail接收邮件(较全)工具类
- UITextField 的使用
- NSObject的load和initialize方法的加载时机和super关系
- linux下常用快捷方式
- 将配置绑定为对象
- 团队项目:二次开发2.0
- mdelay,udelay,msleep区别
- win7系统安装新版Synaptics驱动后触摸板不能触击的解决方法
- 安卓杂记
- 扫描透镜-java
- 负值之美:负margin在页面布局中的应用
- 重载CBCGPRibbonBar,去掉Quick Access toolbar
- [团队项目2.0]软件改进分析MathAPP
- 3.1 - Apps or metadata that mentions the name of any other mobile platform will be rejected
- maven中pom.xml
- ssh -p
- 在飞控算法中遇到的数学名词