Cppcheck 忽略 -i 并在干净构建后检查所有文件
Posted
技术标签:
【中文标题】Cppcheck 忽略 -i 并在干净构建后检查所有文件【英文标题】:Cppcheck ignores -i and checks all files after clean build 【发布时间】:2021-10-29 21:04:31 【问题描述】:我的项目结构相当复杂。 它看起来像这样:
App/
Inc/
Src/
OtherDir/
ManyOtherDirsInc/
ManyOtherDirsSrc/
OtherDirs/ThatAre/Inside/OtherDirs/Inc
build/
我正在使用带有额外 compile_commands.json 的 CMake 构建它。
为了运行 CppCheck,我正在使用运行此(大量)命令的 VsCode 任务:
cppcheck --addon=$workspaceFolder/misra.json
--cppcheck-build-dir=$workspaceFolder/build
-D__GNUC__ --enable=warning,style,performance,portability,information
--suppress=missingIncludeSystem --suppress=unmatchedSuppression
--project=$workspaceFolder/build/compile_commands.json
-i$workspaceFolder/ParentFolderOfManyOtherDirs/WithOtherDirsInside
-i$workspaceFolder/OtherDirs/ThatAlsoShouldBeRecursivelyIgnored
--quiet --template=gcc --verbose
这是否意味着 -i 不是递归的?那会很奇怪,因为在添加文件夹时,它们是递归添加的。
如果能提供任何帮助,我将不胜感激。
【问题讨论】:
【参考方案1】:问题是 .h 文件仍然检查,尽管 -i 标志。 解决方案:
--supress-lists=suppressions.txt
suppressions.txt
*:/home/Projects/Full/Path/*
重要提示!
抑制路径必须是完整的,相对的由于某种原因不起作用。对于有多个开发人员的项目来说,这有点问题。需要一些会自动生成此文件的脚本。
【讨论】:
以上是关于Cppcheck 忽略 -i 并在干净构建后检查所有文件的主要内容,如果未能解决你的问题,请参考以下文章