我在源代码库中调用cppcheck自己的文件.但是,一些源文件包含来自第三方库的头文件./lib/some_library/
.这些也由cppcheck自动解析.
我不想要这个,因为我不想看到第三方代码的警告.有办法解决这个问题吗?
其区别我怎么能告诉cppcheck跳过一个头文件是,这个帖子确实需要跳过整个目录,而不是一个单独的头文件.
我有类似的需要排除对专用第三方目录的报告。为此,我--suppress
直接在 cli 上使用了该选项:
"C:\Program Files\Cppcheck\cppcheck" --suppress=*:*3rdparty\* --language=c++ --enable=all --xml --xml-version=2 . 2> cppcheck-result.xml
有趣的cppcheck
是,它仍然会显示stdout
它正在通过“抑制”目录,但在结果文件中,不会有来自排除目录的任何文件。看来还可以进一步优化。
根据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)
另一种可能性是通过文件使用抑制(请参阅手册第 7 章“在文件中列出抑制”)或通过commandline。
你的pressions.txt 可能是
*:/path/to/your/thirdpartylibs/*
这将排除该路径中的所有错误。语法是
[error id]:[filename]:[line]
通配符支持*
(多个字符)和?
(单个字符)。
然后调用 cppcheck 将是
cppcheck --suppressions-list=suppressions.txt .
Run Code Online (Sandbox Code Playgroud)
归档时间: |
|
查看次数: |
6245 次 |
最近记录: |