HIDARI日記(右)

そのときどき興味ある技術を中心にだらだら書いてます。内容は個人の見解であり、所属する企業を代表するものではありません。

Cppcheckの導入とJenkinsとの連携

準備準備

タイトルの通り,フリーのC++コード静的解析ツール「Cppcheck」の導入と,Jenkinsとの連携のやり方をざっくりとまとめておきます.

環境はWindows7,8で確認しています.

予めJenkinsにCppcheck Pluginも入れとくといいと思います.というか入れましょう.

準備

本当に導入と連携だけを目的としてるので,手を抜くためにまずJenkins側に名前だけのジョブを作ってworkspaceを作ってしまいます.まあ端折ってるのはリポジトリ作成だけですけども.

このworkspaceの下にサンプルプロジェクトを作成.

C:\Jenkins\jobs\cppcheck01\workspace\cppcheckExample\cppcheckExample.sln

以下のようなコードを書いておきます.

#include "stdafx.h"

int main()
{
    char chars[5];

    return 0;
}

Cppcheckのインストール

インストールします.

Cppcheck - A tool for static C/C++ code analysis からcppcheckのインストーラをダウンロードしてインストール.現時点でのバージョンは1.58です.

ちなみに僕の環境(Win8のx64)では C:\Program Files (x86)\ にインストールしようと思ったらうまくいかなかったから,C:\Cppcheck\ にインストールしちゃった.

コマンドプロンプトC:\Cppcheck\に移動して動作することを確認.

c:\Cppcheck> cppcheck --version
Cppcheck 1.58

ついでに以下のコマンドでそのまま実動作確認してもいいと思います.

c:\Jenkins\jobs\cppcheck01\workspace\cppcheckExample>c:\cppcheck\cppcheck --enable=all --xml cppcheckExample 2> check_result.xml

簡単に説明すると,

--enable コマンド(オプション)はチェックの厳しさを指定しています.allはすべての種類をチェックします.一番厳しいやつ.

--xml コマンド(オプション)は結果をXMLファイルに書き出す指定をしています. TargetDir 2> result-file.xml で解析対象のファイルが有るディレクトリを指定して,実行しているディレクトリに result-file.xml を出力します.

気がすんだら今度はJenkinsの設定に移りましょう

ビルドに「Windowsバッチコマンドの実行」を追加して以下を入力.

c:\cppcheck\cppcheck --enable=all --xml cppcheckExample\cppcheckExample 2> cppcheckExample\check_result.xml

Cppcheck Pluginをインストールしていれば,ビルド後の処理に「Publish cppcheck result」が増えているはずなのでそれを追加して

cppcheckExample\check_result.xml

を指定します.

では

実行.

上手くビルドが終わればプロジェクトのトップに「Cppcheck Result」というリンクが表示され,そこから結果が見られます.

f:id:hidari-yori:20130321223328p:plain

おわりに,あるいは補足事項など

このへん参考にするともっと色々出来るようになるようです.

以下は公式のマニュアルです.各種オプションの詳細なんかはこちらを見てください.英語ですが.