cppcheck --enable=all -i ./samples --inconclusive --xml --xml-version=2 ./* 2> %WORKSPACE%/cppcheck.xml
--enable=all
默认情况下,只显示错误消息,可以通过 --enable 命令启用更多检查
--enable= Enable additional checks. The available ids are:
* all
Enable all checks. It is recommended to only
use --enable=all when the whole program is
scanned, because this enables unusedFunction.
* warning
Enable warning messages
* style
Enable all coding style checks. All messages
with the severities 'style', 'performance' and
'portability' are enabled.
* performance
Enable performance messages
* portability
Enable portability messages
* information
Enable information messages
* unusedFunction
Check for unused functions. It is recommend
to only enable this when the whole program is
scanned.
* missingInclude
Warn if there are missing includes. For
detailed information, use '--check-config'.
Several ids can be given if you separate them with
commas. See also --std
启用警告消息:
cppcheck --enable=warning file.c
启用性能消息:
cppcheck --enable=performance file.c
启用信息消息:
cppcheck --enable=information file.c
由于历史原因 --enable=style
可以启用警告、性能、可移植性和样式信息。当使用旧 XML 格式时,这些都由 style 表示:
cppcheck --enable=style file.c
启用警告和性能消息:
cppcheck --enable=warning,performance file.c
启用 unusedFunction 检查。这不能通过 --enable=style
启用,因为不会在库中正常工作。
cppcheck --enable=unusedFunction file.c
启用所有消息:
cppcheck --enable=all
-i
-i
提供一个源文件或源文件目录以排除从检查。这只适用于源文件源文件包含的头文件不匹配。目录名与路径的所有部分相匹配。
--inconclusive
--inconclusive
允许Cppcheck报告,即使分析是不确定。这个选项有假阳性。每个结果在你知道它是否存在之前,必须仔细调查好或坏。
不确定消息
默认情况下,如果确定,Cppcheck 只显示错误消息。如果使用 --inconclusive
,当分析不确定时,也会写错误消息。
cppcheck --inconclusive path
选择XML文件版本。目前只有版本2是可用的。
保存结果到文件中
很多时候,会希望将结果保存在一个文件中,可以使用 shell 的管道重定向错误输出到一个文件:
cppcheck file.c 2> err.txt
多线程检查
选项 -j 用于指定需要使用的线程数,例如,使用 4 个线程检查文件夹中的文件:
cppcheck -j 4 path
XML 输出
Cppcheck 可以生成 XML 格式的输出。有一个旧的 XML 格式(version 1)和一个新的 XML 格式(version 2)。如果可以,请使用新版本。
旧版本保持向后兼容性。它不会改变,但有一天可能会被删除。使用 --xml 支持这种格式。
新版本修复一些旧格式的问题。新格式可能会在 cppcheck 的未来版本中更新,并带有新的属性和元素。用于检查文件并以新的 XML 格式输出错误的示例命令:
cppcheck --xml-version=2 file.cpp
-xml
--xml 将结果以xml格式写入错误流(stderr)。
--xml-version
--xml-version=