Cppcheck:如何跳过第三方头文件的目录?

Chi*_*nke 10 cppcheck

我在源代码库中调用cppcheck自己的文件.但是,一些源文件包含来自第三方库的头文件./lib/some_library/.这些也由cppcheck自动解析.

我不想要这个,因为我不想看到第三方代码的警告.有办法解决这个问题吗?

其区别我怎么能告诉cppcheck跳过一个头文件是,这个帖子确实需要跳过整个目录,而不是一个单独的头文件.

fdu*_*uff 9

我有类似的需要排除对专用第三方目录的报告。为此,我--suppress直接在 cli 上使用了该选项:

"C:\Program Files\Cppcheck\cppcheck" --suppress=*:*3rdparty\* --language=c++ --enable=all --xml --xml-version=2 . 2> cppcheck-result.xml

有趣的cppcheck是,它仍然会显示stdout它正在通过“抑制”目录,但在结果文件中,不会有来自排除目录的任何文件。看来还可以进一步优化。


Pra*_*nde 7

根据cppcheck 手册

从检查中 排除文件或文件夹 要排除文件或文件夹,有两个选项。第一个选项是仅提供要检查的路径和文件。

cppcheck src/a src/b
Run Code Online (Sandbox Code Playgroud)

然后检查 src/a 和 src/b 下的所有文件。

第二个选项是使用 -i,您可以指定要忽略的文件/路径。使用此命令不会检查 src/c 中的文件:

cppcheck -isrc/c src
Run Code Online (Sandbox Code Playgroud)

此选项当前不适用于 --project 选项,并且仅在提供输入目录时有效。

要忽略多个目录,请多次提供 -i。以下命令忽略 src/b 和 src/c 目录。

cppcheck -isrc/b -isrc/c
Run Code Online (Sandbox Code Playgroud)


BNT*_*BNT 7

另一种可能性是通过文件使用抑制(请参阅手册第 7 章“在文件中列出抑制”)或通过commandline

你的pressions.txt 可能是

*:/path/to/your/thirdpartylibs/*

这将排除该路径中的所有错误。语法是

[error id]:[filename]:[line]

通配符支持*(多个字符)和?(单个字符)。

然后调用 cppcheck 将是

cppcheck --suppressions-list=suppressions.txt .
Run Code Online (Sandbox Code Playgroud)