Jenkins/CppNcss define/macro errors

Jenkins 中用cppncss 做C++ 代码的静态质量检查时,在Jenkins Job Build 时失败,出现很多类似下面的错误:


事实上,让cppncss 检查的代码在正常build 时是成功的。出现上面的错误,是因为在Jenkins Job 中,cppncss 不能自动正确找到类似上面的 INT 类型定义。遇到的错误中还有很多因为找不到定义而误报的 define/macro 错误。

CppNcss Tutorial 的“Defines and Macros”章节介绍了一种方法:

-D<symbol>[=[<value>]] replace define <symbol> with <value>
-M<symbol>[=[<value>]] replace macro <symbol> with <value>

  1. 例如,通过在cppncss 命令行中追加 -DXXX 这样的参数,显示定义XXX define
  2. 例如,通过在cppncss 命令行中追加 -MYYY= 这样的参数,去除YYY macro

使用了这种方法,错误貌似减少了一点点,但是这种方法并不怎么好,因为大部分稍微复杂一点的宏都不能这样简单糊弄过去,该展开的还是应该展开;如果不符合实际情况,这个静态检查也没有意义。

貌似还没有一个简单易行的方法,能让cppncss 在静态检查时自动找到正确的 define/macro


附:

CppNcss report 考查的指标定义

生成的Sonar 报表截图:



评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值