【问题标题】:How can I run cppcheck for specific files following a pattern?如何按照模式对特定文件运行 cppcheck?
【发布时间】:2026-01-12 19:15:01
【问题描述】:

我只想为特定类型的文件而不是所有文件运行 cppcheck。

例如,我想对所有以“Operation.cpp”结尾的文件递归地运行cppcheck(基本上是*Operation.cpp)。我在 cppcheck 中没有找到选项,我也是这样做的。有人可以帮忙吗?

另外,如果函数存在于 CPP 文件中,我是否可以 grep,如果这些文件中不存在,则抛出错误。

【问题讨论】:

  • 一些shell脚本呢,比如for i in (*Operation.cpp); do cppcheck $i; done
  • 我会改用 Clang-tidy。
  • @MathieuBunel 是的,这是我的想法。但是有没有办法在一次 cpp check 调用中指定?

标签: c++ c static-code-analysis cppcheck


【解决方案1】:

在 Linux 上你可以使用

find foo*.cpp | xargs cppcheck

这是一个更新,之前的示例使用了 ls,但正如更有经验的人所注意到的,出于自动化目的,find 应该是更可取的解决方案。证明:Why you shouldn't parse the output of ls(1)

【讨论】:

  • 为什么是lsecho 就足够了。不要解析ls 的输出。如果是这样,为什么不只是cppcheck foo*.cpp
  • 这个ls 是一个例子。您可以使用 ls 的其他选项,例如子文件夹中的递归搜索,这就是利用它的原因。顺便说一句,echo 有什么帮助?
  • Why you shouldn't parse the output of ls(1) 使用find 进行递归搜索。 ls是漂亮的印刷品。
最近更新 更多