IAR 单元测试时报告重复定义错误

使用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方式,并且在对应的源码文件中去定义变量。

转载于:https://www.cnblogs.com/kwang-cai/p/5437605.html

  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值