cppcheck --suppress 命令行参数不起作用

Posted

技术标签:

【中文标题】cppcheck --suppress 命令行参数不起作用【英文标题】:cppcheck --suppress command line parameter doesn't work 【发布时间】:2021-07-12 21:13:03 【问题描述】:

想要抑制某个文件中的所有错误检查。我的命令行命令是

cppcheck --enable=all -j 4 --output-file=out.txt --project=solution.sln --suppress=*:file.cpp

但我的输出文件中的 file.cpp 出现错误。我以前曾经有过非常相似的(据我所知)命令行,它抑制了文件中的所有检查,但是,现在由于某种原因它现在不起作用。我的命令行错了吗?

我知道可以使用抑制文件,但我更喜欢命令行参数,也想弄清楚我做错了什么。

【问题讨论】:

需要为 file.cpp 提供相对路径吗?如果输出文件中的错误具有 file.cpp 的相对路径,请在 --suppress 参数中使用相同的路径。 【参考方案1】:

抑制需要匹配结果中的文件路径。

如果您指定一个相对文件夹/文件来检查它是直截了当的,您可以只使用当前文件夹中的结构。 但是,如果您使用--project 或绝对路径进行检查,则需要指定-rp(如“根路径”)以告诉Cppcheck 文件路径的基础。在您的情况下,只需添加 -rp=. 即可解决问题 - 至少它将结果中的路径从绝对路径更改为相对路径,这是您必须在抑制中使用的路径。

【讨论】:

以上是关于cppcheck --suppress 命令行参数不起作用的主要内容,如果未能解决你的问题,请参考以下文章

如何为 C++ 代码使用 cppcheck 的内联抑制过滤器选项?

如何使用 CppCheck 工具在 ubuntu 中查看你的 c/cpp 代码?

无法识别来自命令行的 cppcheck

is_same 上的 Cppcheck 语法错误与模板

CppCheck 抑制过时的功能

Sublime Text cppcheck “没有 lint 错误”