Cppcheck是一个静态代码检查工具,支持C/C++代码;作为编译器的一种补充检查,Cppcheck主要对源代码执行以下检查:
- 自动变量检查
- 数组的边界检查
- class类检查
- 过期的函数,废弃函数调用检查
- 异常内存使用,释放检查
- 内存泄漏检查,主要是通过内存引用指针
- 操作系统资源释放检查,中断,文件描述符等
- 异常STL 函数使用检查
- 代码格式错误,以及性能因素检查
基础使用:
检查单个文件:cppcheck file.c
检查文件夹:cppcheck filePath
排除一个文件或文件夹:cppcheck -i src/file.c src
接下来介绍实践步骤。
一、安装Cppcheck
下载地址:
https://sourceforge.net/projects/cppcheck/files/cppcheck/
安装步骤:
1、进入/usr/local,解压:tar –zxvf cppcheck-1.90.tar.gz
2、进入/usr/local/cppcheck-1.90,编译:make -j48 CFGDIR=/usr/local/cppcheck-1.90/cfg
3、安装:make install
4、配置cppcheck的环境变量,修改/etc/profile如下:
- 新增CPPCHECK_HOME=/usr/local/cppcheck-1.90
- 在PATH后追加:$CPPCHECK_HOME
- 在CLASSPATH后追加:$CPPCHECK_HOME
- 运行source /etc/profile命令,使新的环境变量生效。
二、安装Jenkins插件
直接在商店里搜 cppcheck,或在官网下载:
https://wiki.jenkins-ci.org/display/JENKINS/Cppcheck+Plugin
安装后:
三、项目配置
1.参数化构建
指定源码路径,等等。
2.增加构建步骤--执行shell
/usr/bin/cppcheck --enable=all --inconclusive --xml --xml-version=2 ${source_dir} 2> cppcheck-result.xml
注意:
shell命令里的 “2>” 中间没有空格!
3.构建后操作--Publish Cppcheck results
选项说明:
四、开始构建
日志:
构建结果视图:
点击Cppcheck Results,进入详情:
遇到的问题
问题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.90/cfg