CppCheck 在调用时使用 -I 的 headerfolders 报告的错误更少,然后没有

Posted

技术标签:

【中文标题】CppCheck 在调用时使用 -I 的 headerfolders 报告的错误更少,然后没有【英文标题】:CppCheck reports less errors whith headerfolders using -I in call then without 【发布时间】:2021-06-29 06:28:25 【问题描述】:

对 CppCheck 的调用报告了 16 个错误: cppcheck -j 4 路径 --enable=all --inconclusive -UIMAQ_IMPORT -UIMAQ_STDCALL -iExternals --xml --xml-version=2 源 2> cppcheck.xml

对 CppCheck 的相同调用,但使用 -I 添加了标题文件夹,报告 10 个错误。字符串长度为 1392。 cppcheck -j 4 路径 --enable=all --inconclusive -I "C:\ProgramData\National Instruments\CVI2017\include" -I "C:\Program Files (x86)\National Instruments\Vision\Include" -I " C:\Program Files (x86)\National Instruments\CVI2017\toolslib\toolbox" -I "C:\Program Files (x86)\National Instruments\CVI2017\include" -I "C:\Program Files (x86)\National仪表\ CVI2017 \包括\ ANSI” -I d:\ Jenkins_DO_NOT_REMOVE \工作空间\ Production_Radar_77GHz_SWLoadDispatch_1_2_Alfa_Romeo_FCA \外部对象\ I基准\源\ TESTBENCH -I d:\ Jenkins_DO_NOT_REMOVE \工作空间\ Production_Radar_77GHz_SWLoadDispatch_1_2_Alfa_Romeo_FCA \外部对象\ I基准\源\ tsMis -I d:\ Jenkins_DO_NOT_REMOVE \工作空间\ Production_Radar_77GHz_SWLoadDispatch_1_2_Alfa_Romeo_FCA \外部对象\ I基准\源-I d:\ Jenkins_DO_NOT_REMOVE \工作空间\ Production_Radar_77GHz_SWLoadDispatch_1_2_Alfa_Romeo_FCA \推出\滨-I d:\ Jenkins_DO_NOT_REMOVE \工作空间\ Production_Radar_77GHz_SWLoadDispatch_1_2_Alfa_Romeo_FCA \源\ gplib \源-I d:\ Jenkins_DO_NOT_REMO VE \工作空间\ Production_Radar_77GHz_SWLoadDispatch_1_2_Alfa_Romeo_FCA \源\ gplib -I d:\ Jenkins_DO_NOT_REMOVE \工作空间\ Production_Radar_77GHz_SWLoadDispatch_1_2_Alfa_Romeo_FCA \源\面板-I d:\ Jenkins_DO_NOT_REMOVE \工作空间\ Production_Radar_77GHz_SWLoadDispatch_1_2_Alfa_Romeo_FCA \源-UIMAQ_IMPORT -UIMAQ_STDCALL --xml --xml版本= 2 -iExternals源--force 2> cppcheck.xml

虽然根据日志分析了两个模块的错误,但没有报告来自两个模块的错误。

【问题讨论】:

【参考方案1】:

这是有道理的。 -I 用于包含。没有它,syntax\classes 看起来会无效。您应该检查是否可以通过包含头文件来解释丢失的错误。

【讨论】:

缺失的错误在两个模块中。两个模块都根据 ot 日志进行分析,并且在 -I 包含的文件夹中都有 .h 文件 好的,但是 .h 文件可能包含其他 .h 等等。这可能会影响代码的分析方式。如果你能举个例子那就太好了。或者您可以将 所有 需要的文件放在同一个文件夹中并查看(但我怀疑这几乎是不可能的)

以上是关于CppCheck 在调用时使用 -I 的 headerfolders 报告的错误更少,然后没有的主要内容,如果未能解决你的问题,请参考以下文章

如何使 cppcheck 在错误时停止

cppcheck 抱怨 c_str() 的危险使用。此调用后 c_str() 返回的值无效

cppcheck 生成 xml 转储文件

我可以在 C/c++ 的 Vim 编辑器中执行 :wq 时使用 cppcheck

在声纳中使用 C++ 社区插件的问题。 Cppcheck 不起作用

声明结构数组时,cppcheck 停止分析整个文件