cppcheck
1.1、cppcheck简介
是什么 ?:a static analysis tool for C / C++ code.
开发语言:C++
官方主页:http://cppcheck.sourceforge.net
源码仓库:https://github.com/danmar/cppcheck
相关软件:cppcheck-htmlreport
1.2、通过包管理器安装cppcheck
操作系统包管理器安装命令
WindowsChocolateychoco install -y cppcheck
macOSHomeBrewbrew install cppcheck
GNU/LinuxHomeBrewbrew install cppcheck
aptsudo apt-get install -y cppcheck
CentOSyumsudo yum install -y cppcheck
dnfsudo dnf install -y cppcheck
openSUSEzyppersudo zypper install -y cppcheck
Alpine Linuxapksudo apk add cppcheck

Arch Linux

ArcoLinux

Manjaro Linux

pacmansudo pacman -Syyu --noconfirm
sudo pacman -S    --noconfirm cppcheck
Gentoo LinuxPortagesudo emerge cppcheck
1.3、通过编译源码安装cppcheck
1.4、cppcheck命令

cppcheck命令的使用格式如下:

cppcheck [OPTION...] [FILE... | DIR...]
1.4.1、--help | -h

显示cppcheck命令的使用帮助。

1.4.2、--version

显示cppcheck的版本信息。

1.4.3、-E

打印出预处理器处理后的结果。

cppcheck -E src/
1.4.4、--language=c | c++, -x c | c++

指定要处理的源文件类型。

示例:

cppcheck -x c -E
1.4.5、-std=c89 | c99 | c11 | c++03 | c++11 | c++14 | c++17 | c++20

指定要使用哪个C标准/C++标准

示例:

cppcheck -x c –std=c99 -E
1.4.6、-I <INCLUDE_DIR>

Iinclude的意思。

此参数提供额外的头文件查找目录。

示例:

cppcheck -I /usr/local/opt/ncurses/include -E
1.4.7、-D<MACRO[=VALUE]>

定义宏。

cppcheck -DDEBUG -E
1.4.8、-U<MACRO>

取消定义宏。

cppcheck -UDEBUG -E
1.4.9、--xml

结果输出为XML格式。

cppcheck --xml ./src
1.4.10、--output-file=FILE

结果输出到指定的文件中。

cppcheck --xml --output-file=cppcheck-report.xml ./src
1.4.11、--enable=all | warning | style | performance | portability | information | unusedFunction | missingInclude

指定输出什么信息。

可以同时指定多个值,多个值之间用,隔开。

cppcheck --enable=all                 --xml --output-file=cppcheck-report.xml ./src
cppcheck --enable=warning,performance --xml --output-file=cppcheck-report.xml ./src
1.4.12、-j N

N个任务并发执行。

cppcheck -j $(nproc) ./src
1.4.13、--project=compile_commands.json | *.vcxproj | *.sln

从这些配置文件中获取信息。

cppcheck --project=build.d/compile_commands.json --enable=all --xml --output-file=cppcheck-report.xml