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

时间:2016-06-03 08:36:52

标签: cppcheck

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

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

how can i tell cppcheck to skip a header file的区别在于此帖明确要求跳过整个目录,而不仅仅是单个头文件。

3 个答案:

答案 0 :(得分:3)

另一种可能性是通过文件使用抑制(参见manual第7章"列出文件中的抑制")或通过commandline

您的suppressions.txt可能是

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

哪个会排除该路径中的所有错误。语法是

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

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

对cppcheck的调用将是

cppcheck --suppressions-list=suppressions.txt .

答案 1 :(得分:2)

根据cppcheck manual

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

cppcheck src/a src/b

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

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

cppcheck -isrc/c src

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

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

cppcheck -isrc/b -isrc/c

答案 2 :(得分:1)

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

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

使用cppcheck的有趣之处在于,它仍将在stdout上显示它正在通过'suppressed'目录,但是在结果文件中,排除的文件中不会有任何文件目录在那里。看起来它可能会进一步优化。