工具簡介
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/