cppcheck/readmeja.md

5.5 KiB

Cppcheck

Linux ビルド状態 Windows ビルド状態 Coverity Scan Build 状態
Linux ビルド状態 Windows ビルド状態 Coverity Scan Build 状態

名前について

このプログラムは元々、"C++check"という名前でしたが後に"Cppcheck"に変更されました。

このような名前ですが、Cppcheckは CとC++の両方に対して設計されています。

マニュアル

マニュアルはオンライン上にあります。

ビルド

C++11に対応したコンパイラが利用できます。部分的にC++11にサポートしたコンパイラも利用できるかもしれません。もし、あなたのコンパイラがVisual Studio 2013や GCC 4.8で利用できるC++11機能がサポートされているなら、そのコンパイラが利用できます。

GUIも利用する場合、Qtライブラリが必要です。

コマンドラインツールをビルドする場合、PCREはオプションです。これはルールを作成するために利用します。

コンパイル上の選択肢がいくつかあります。

  • qmake - クロスプラットフォームのビルドツール
  • cmake - クロスプラットフォームのビルドツール
  • Windows: Visual Studio (VS 2013 またはそれ以上)
  • Windows: Qt Creator + mingw
  • gnu make
  • g++ 4.8 (またはそれ以上)
  • clang++

cmake

cmakeでCppcheckをコンパイルする例

mkdir build
cd build
cmake ..
cmake --build .

C++標準を指定する必要がある場合次のオプションを指定します。 -DCMAKE_CXX_STANDARD=11

CppcheckのGUIが必要な場合次のフラグを指定します。 -DBUILD_GUI=ON

pcreが必要になりますが、正規表現のルールサポートが必要な場合次のフラグを指定します。 -DHAVE_RULES=ON

qmake

GUIをビルドするには、gui/gui.proファイルが利用できます。

cd gui
qmake
make

Visual Studio

cppcheck.slnファイルが利用できます。このファイルは、Visual Studio 2019向けです。しかし、このプラットフォームツールセットはこれより新しいバージョンまたは古いバージョン向けに変更できます。このソルーションには、プラットフォームターゲットとしてx86とx64があります。

ルールをコンパイルするためには、"Release-PCRE" または "Debug-PCRE" 設定を選択してください。pcre.lib (または pcre64.lib x64ビルド向け) と pcre.h を /externals にコピーしてください。Visual Studio のための PCRE の最新バージョンは vcpkg から取得できます。

Qt Creator + MinGW

コマンドラインツールをビルドするには、PCRE.dllが必要です。これは以下のURLからダウンロードできます。: http://software-download.name/pcre-library-windows/

GNU make

単純で最適化しないビルド(依存関係なし):

make

推奨するリリースビルド方法:

make MATCHCOMPILER=yes FILESDIR=/usr/share/cppcheck HAVE_RULES=yes CXXFLAGS="-O2 -DNDEBUG -Wall -Wno-sign-compare -Wno-unused-function"

フラグ:

  1. MATCHCOMPILER=yes cppcheckの最適化にPythonを使用します。Token::Match パターンはコンパイル時にlC++コードに変換されます。

  2. FILESDIR=/usr/share/cppcheck cppcheckの設定ファイル(addon や cfg や platform)を置くディレクトリを指定します。

  3. HAVE_RULES=yes ルール機能の有効化 (ルール機能には PCRE が必要です)設定です。

  4. CXXFLAGS="-O2 -DNDEBUG -Wall -Wno-sign-compare -Wno-unused-function" ほとんどのコンパイラの最適化オプション、cppcheckの内部デバッグコードの無効化、基本的なコンパイラ警告の有効化

g++ (エキスパート向け)

依存関係なく Cppcheckをビルドしたい場合、次のコマンドを利用できます。

g++ -o cppcheck -std=c++11 -Iexternals -Iexternals/simplecpp -Iexternals/tinyxml2 -Ilib cli/*.cpp lib/*.cpp externals/simplecpp/simplecpp.cpp externals/tinyxml2/*.cpp

--rule--rule-file を利用する場合、依存ライブラリが必要です。

g++ -o cppcheck -std=c++11 -lpcre -DHAVE_RULES -Iexternals -Iexternals/simplecpp -Iexternals/tinyxml2 -Ilib cli/*.cpp lib/*.cpp externals/simplecpp/simplecpp.cpp externals/tinyxml2/*.cpp

MinGW

mingw32-make

その他のコンパイラ/IDE

  1. 空のプロジェクトファイル /makefileの作成
  2. cppcheck cli それに lib ディレクトリに含まれる全てのcppファイルをそのプロジェクトファイルまたはmakefileに加えます。
  3. externalsフォルダの全てのcppファイルをプロジェクトファイル / makefileに追加します。
  4. ビルド

Linux で Win32 コマンドラインバージョンをクロスコンパイル

sudo apt-get install mingw32
make CXX=i586-mingw32msvc-g++ LDFLAGS="-lshlwapi" RDYNAMIC=""
mv cppcheck cppcheck.exe

Webページ

https://cppcheck.sourceforge.io/