天天看點

Jenkins常用插件之Cppcheck Plugin

工具簡介

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進行安裝
Jenkins常用插件之Cppcheck Plugin
第二步:項目的具體配置
Jenkins常用插件之Cppcheck Plugin
第三步:結果檢視
Jenkins常用插件之Cppcheck Plugin
Jenkins常用插件之Cppcheck Plugin

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設定說明

Jenkins常用插件之Cppcheck Plugin

使用中遇到的問題

問題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/