Cppcheck命令参数

安装QT

自行安装

执行扫描

执行参数信息

cppcheck.exe --doc  // 查看当前版本支持的所有规则清单 
cppcheck --errorlist  // 查看所有规则和规则描述信息
--enable=all  //默认会启动所有扫描规则,但是经测试未使用的函数规则未启动
--enable=warning,performance,portability,information,missingInclude  // 开启这几种类型检查
--disable=missingInclude    // 弃用某种检查器
--suppress=missingInclude    // 忽略某种警告
--std=c++11   // 使用c++11标准

Cppcheck - 静态 C/C++ 代码分析工具

语法:

 cppcheck [选项] [文件或路径]
 如果给出目录而不是文件名,则从给定的目录递归检查 *.cpp、*.cxx、*.cc、*.c++*.c、*.ipp、*.ixx、*.tpp 和 *.txx 文件。
Options:
    --addon=<addon>
                         执行插件。 即--addon=misra。 如果必须提供选项,则需要 json 配置。
    --addon-python=<python interpreter>
                         您可以在插件 json 文件中或通过此命令行选项指定 python 解释器。如果不存在,Cppcheck 将首先尝试“python3”,然后再尝试“python”。    --cppcheck-build-dir=<dir>
                         Cppcheck 工作文件夹。 优点:
                           * 整个程序分析
                           * 更快的分析; 如果文件的哈希值未更改,Cppcheck 将重用结果。
                           * 一些有用的调试信息,即用于执行 clang/clang-tidy/addons 的命令。
    --check-config       检查 cppcheck 配置。 该标志禁用正常的代码分析
    --check-library      当库文件信息不完整时显示信息消息。
    --clang=<path>       实验:使用 Clang 解析器而不是内置的 Cppcheck 解析器。 将可执行文件作为可选参数,默认为“clang”。 Cppcheck 将运行给定的 Clang 可执行文件,导入 Clang AST 并将其转换为 Cppcheck 数据。 之后使用正常的 Cppcheck 分析。 如果未给出路径,则必须在 PATH 中包含可执行文件。
    --config-exclude=<dir>
                         要从配置检查中排除的路径(前缀)。 与前缀匹配的标头(但不是源)中定义的预处理器配置将不会被考虑进行评估。
    --config-excludes-file=<file>
                         包含配置排除列表的文件
    --dump               转储每个翻译单元的 xml 数据。 转储文件的扩展名为 .dump,包含 ast、tokenlist、symboldatabase、valueflow。
    -D<ID>               定义预处理器符号。 除非使用 --max-configs 或 --force,否则 Cppcheck 将仅在使用 -D 时检查给定的配置。 示例:'-DDEBUG=1 -D__cplusplus'.
    -E                   在标准输出上打印预处理器输出,并且不进行任何进一步的处理。
    --enable=<id>        启用附加检查。 可用的 id 是:
                          * all
                                  启用所有检查。 建议仅在扫描整个程序时使用--enable=all,因为这会启用unusedFunction。
                          * warning
                                  启用警告消息
                          * style
                                  启用所有编码风格检查。 所有具有“样式”、“警告”、“性能”和“可移植性”严重性的消息均已启用。
                          * performance
                                  启用性能消息
                          * portability
                                  启用可移植性消息
                          * information
                                  Enable information messages
                          * unusedFunction
                                  检查是否有未使用的功能。 建议仅在扫描整个程序时启用此功能。
                          * missingInclude
                                  如果缺少包含内容,则发出警告。 有关详细信息,请使用“--check-config”。
                         如果用逗号分隔,可以给出多个 id。 另请参阅--std
    --error-exitcode=<n> 如果发现错误,则返回整数 [n] 而不是默认的“0”。 如果参数无效或未提供输入文件,则返回“1”。 请注意,您的操作系统可以修改此值,例如 ‘256’可以变成‘0’。
    --errorlist          以 XML 格式打印所有错误消息的列表。
    --exitcode-suppressions=<file>
                         当应显示某些消息但不应导致非零退出代码时使用。
    --file-filter=<str>  仅分析与给定过滤器 str 匹配的文件 可多次使用 示例: --file-filter=*bar.cpp 仅分析以 bar.cpp 结尾的文件。
    --file-list=<file>   指定要签入文本文件的文件。 每行添加一个文件名。 当 file 为“-”时,将从标准输入读取文件列表。
    -f, --force          强制检查文件中的所有配置。 如果与“--max-configs=”一起使用,则最后一个选项有效。
    -h, --help           Print this help.
    -I <dir>             给出搜索包含文件的路径。 给出几个 -I 参数来给出多个路径。 首先在第一个给定路径中搜索包含的头文件。 如果路径是相对于源文件的,则不需要这样做。
    --includes-file=<file>
                         指定目录路径以搜索文本文件中包含的头文件。 每行添加一个包含路径。 首先在第一个给定路径中搜索包含的头文件。 如果路径是相对于源文件的,则不需要这样做。
    --include=<file>
                         强制在检查的文件之前包含一个文件。
    -i <dir or file>     给出要从检查中排除的源文件或源文件目录。 这仅适用于源文件,因此源文件包含的头文件不匹配。 目录名称与路径的所有部分匹配。
    --inconclusive       即使分析尚无结论,也允许 Cppcheck 报告。 此选项存在误报。 每个结果都必须仔细研究,然后才能知道它是好还是坏。
    --inline-suppr       启用内联抑制。 通过在要抑制的警告之前的行上放置一个或多个注释来使用它们,例如:“// cppcheck-suppress warningId”。
    -j <jobs>            启动 <jobs> 线程同时进行检查。
    --language=<language>, -x <language>
                         强制 cppcheck 检查给定语言的所有文件。 有效值为:c、c++
    --library=<cfg>      加载包含有关类型和函数的信息的文件 <cfg>。 有了这些信息,Cppcheck 可以更好地理解您的代码,因此您可以获得更好的结果。 随 Cppcheck 分发的 std.cfg 文件会自动加载。 有关库文件的更多信息,请阅读手册。
    --max-configs=<limit>
                         在跳过文件之前要签入文件的最大配置数。 默认值为“12”。 如果与“--force”一起使用,则最后一个选项有效。
    --max-ctu-depth=N    整个程序分析的最大深度。 默认值为 2。值越大意味着可以发现更多错误,但也意味着分析速度会更慢。
    --output-file=<file> 将结果写入文件,而不是标准错误。
    --platform=<type>, --platform=<file>
                         指定平台特定的类型和大小。 可用的内置平台有:
                          * unix32
                                 32 bit unix variant
                          * unix64
                                 64 bit unix variant
                          * win32A
                                 32 位 Windows ASCII 字符编码
                          * win32W
                                 32 位 Windows UNICODE 字符编码
                          * win64
                                 64 bit Windows
                          * avr8
                                 8位AVR微控制器
                          * elbrus-e1cp
                                 Elbrus e1c+ architecture
                          * pic8
                                 8 位 PIC 微控制器 基线和中档架构
                          * pic8-enhanced
                                8 位 PIC 微控制器增强型中端和高端 (PIC18) 架构
                          * pic16
                                 16位PIC单片机
                          * mips32
                                 32 位 MIPS 微控制器
                          * native
                                 假设主机系统的类型大小,但没有进一步的假设。
                          * unspecified
                                 Unknown type sizes
    --plist-output=<path>
                         在文件夹中生成 Clang-plist 输出文件。
    --project=<file>     对项目运行 Cppcheck。 <文件> 可以是 Visual Studio 解决方案 (*.sln)、Visual Studio 项目 (*.vcxproj)、编译数据库 (compile_commands.json) 或 Borland C++ Builder 6 (*.bpr)。 将使用指定文件中要分析的文件,包括路径、定义、平台和未定义。
    --project-configuration=<config>
                         如果与 Visual Studio 解决方案 (*.sln) 或 Visual Studio 项目 (*.vcxproj) 一起使用,您可以限制 cppcheck 应检查的配置。 例如:'--project-configuration=Release|Win32'
    -q, --quiet          不显示进度报告。
    -rp=<paths>, --relative-paths=<paths>
                         在输出中使用相对路径。 当给定时,<paths> 用作基础。 您可以通过“;”分隔多个路径。 否则使用搜索源文件的路径。 我们使用字符串比较来创建相对路径,因此使用例如 ~ 对于主文件夹不起作用。 目前只能将基本路径应用于目录树中较低级别的文件。
    --report-progress    检查文件时报告进度消息。
    --rule=<rule>        匹配正则表达式。
    --rule-file=<file>   使用给定的规则文件。 有关更多信息,请参阅:http://sourceforge.net/projects/cppcheck/files/Articles/
    --std=<id>           Set standard.
                         可用的选项有:
                          * c89
                                 C code is C89 compatible
                          * c99
                                 C code is C99 compatible
                          * c11
                                 C code is C11 compatible (default)
                          * c++03
                                 C++ code is C++03 compatible
                          * c++11
                                 C++ 代码与 C++11 兼容
                          * c++14
                                 C++ code is C++14 compatible
                          * c++17
                                 C++ code is C++17 compatible
                          * c++20
                                 C++ code is C++20 compatible (default)
    --suppress=<spec>    抑制与 <spec> 匹配的警告。 <spec> 的格式为:
                         [error id]:[filename]:[line] The [filename] and [line] are optional. If [error id] is a wildcard '*', all error ids match.
    --suppressions-list=<file>
                         抑制文件中列出的警告。 每个抑制的格式与上面的 <spec> 相同。
    --suppress-xml=<file>
                         禁止 xml 文件中列出的警告。 XML 文件应遵循章节中指定的手册.pdf 格式。 `6.4 XML 抑制`。
    --template='<text>'  设置错误消息的格式。 可用字段:
                           {file}              file name
                           {line}              line number
                           {column}            column number
                           {callstack}         显示调用堆栈。 示例: [file.c:1] -> [file.c:100]
                           {inconclusive:text} 如果警告不确定,则写入文本
                           {severity}          severity
                           {message}           warning message
                           {id}                warning id
                           {cwe}               CWE id(常见弱点枚举)
                           {code}              显示真实代码
                           \t                 insert tab
                           \n                 insert newline
                           \r                 插入回车符
                         Example formats:
                         '{file}:{line},{severity},{id},{message}' or '{file}({line}):({severity}) {message}' or '{callstack} {message}' 预定义模板:gcc(默认)、cppcheck1(旧默认)、vs、edit。
    --template-location='<text>'
                         格式化错误消息位置。 如果未提供,则不会显示额外的位置信息。
                         可用字段:
                           {file}      file name
                           {line}      line number
                           {column}    column number
                           {info}      location info
                           {code}      show the real code
                           \t         insert tab
                           \n         insert newline
                           \r         insert carriage return
                         Example format (gcc-like): '{file}:{line}:{column}: note: {info}\n{code}'
    -U<ID>               取消定义预处理器符号。 使用 -U 显式隐藏某些 #ifdef <ID> 代码路径以防止检查。
                         示例:“-UDEBUG”
    -v, --verbose        输出更详细的错误信息。
    --version            打印出版本号。
    --xml                将结果以 xml 格式写入错误流 (stderr)。

Example usage:
  # 递归检查当前文件夹。 在屏幕上打印进度并
  # 将错误写入文件:
  cppcheck . 2> err.txt

  # 递归检查../myproject/并且不打印进度:
  cppcheck --quiet ../myproject/

  # 检查test.cpp,启用所有检查:
  cppcheck --enable=all --inconclusive --library=posix test.cpp

  # 检查 f.cpp 并搜索 inc1/ 和 inc2/ 中的包含文件:
  cppcheck -I inc1/ -I inc2/ f.cpp

For more information:
    https://cppcheck.sourceforge.io/manual.pdf
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值