工具简介
Cppcheck 是一个静态代码检查工具,支持C/C++代码;作为编译器的一种补充检查,Cppcheck主要对源代码执行以下检查:
1. 自动变量检查
2. 数组的边界检查
3. class类检查
4. 过期的函数,废弃函数调用检查
5. 异常内存使用,释放检查
6. 内存泄漏检查,主要是通过内存引用指针
7. 操作系统资源释放检查,中断,文件描述符等
8. 异常STL 函数使用检查
9. 代码格式错误,以及性能因素检查
基础使用
检查单个文件:cppcheck file.c
检查文件夹:cppcheck filePath
排除一个文件或文件夹:cppcheck -i src/file.c src
以下是该插件在Jenkins中使用的具体步骤:
第一步:Cppcheck相关软件下载和安装
- 在网上下载Cppcheck
- 在网上下载Cppcheck Plugin插件,下载文件为cppcheck.hpi
- 安装Cppcheck工具
1、进入/usr/local,解压:tar –zxvf cppcheck-1.73.tar.gz
2、进入/usr/local/cppcheck 1.73,编译:make CFGDIR=/usr/local/cppcheck 1.73/cfg/
3、安装:make install
4、配置cppcheck的环境变量,修改/etc/profile如下:
新增CPPCHECK_HOME=/usr/local/cppcheck 1.73
在PATH后追加:$CPPCHECK_HOME
在CLASSPATH后追加:$CPPCHECK_HOME
运行source /etc/profile命令,使新的环境变量生效
- 在jenkins中安装Cppcheck Plugin插件,系统管理–>插件管理–>高级上传cppcheck.hpi进行安装
第二步:项目的具体配置
Cppcheck使用样例
# 最小集参数设置
cppcheck --xml --xml-version=2 SOURCE_DIRECTORY 2> cppcheck.xml
# 检查所有
cppcheck --enable=all --inconclusive --xml --xml-version=2 SOURCE_DIRECTORY 2> cppcheck.xml
# 多线程并行分析代码
cppcheck -j 4 --enable=all --inconclusive --xml --xml-version=2 SOURCE_DIRECTORY 2> cppcheck.xml
Cppcheck设置说明
使用中遇到的问题
问题1:cppcheck:failed to load library configuration file ‘std.cfg’.file not find
详细的错误信息:Failed to load std.cfg. Your Cppcheck installation is broken, please re-install. The Cppcheck binary was compiled without CFGDIR set. Either the std.cfg should be available in cfg or the CFGDIR should be configured.
原因:编译时未指定CFGDIR
解决方法:在编译时指定CFGDIR,如:make CFGDIR=/usr/local/cppcheck 1.73/cfg/