2010-02-21 20:39:18 +01:00
|
|
|
=========
|
|
|
|
Cppcheck
|
|
|
|
=========
|
|
|
|
|
|
|
|
|
|
|
|
About
|
|
|
|
|
|
|
|
The original name of this program is "C++check" but it was later changed to "cppcheck".
|
|
|
|
|
2010-08-29 13:21:35 +02:00
|
|
|
Manual
|
|
|
|
|
2010-12-15 18:45:53 +01:00
|
|
|
A manual is available online:
|
2021-08-28 12:46:54 +02:00
|
|
|
https://cppcheck.sourceforge.io/manual.pdf
|
2010-02-21 20:39:18 +01:00
|
|
|
|
|
|
|
Compiling
|
|
|
|
|
2014-03-05 06:15:44 +01:00
|
|
|
Any C++11 compiler should work. For compilers with partial C++11 support it may work. If
|
2022-02-05 17:57:32 +01:00
|
|
|
your compiler has the C++11 features that are available in Visual Studio 2013 / GCC 4.8
|
2018-04-10 06:52:33 +02:00
|
|
|
then it will work.
|
2010-02-19 17:34:50 +01:00
|
|
|
|
2011-02-06 11:21:50 +01:00
|
|
|
To build the GUI, you need Qt.
|
|
|
|
|
2020-09-01 17:37:28 +02:00
|
|
|
While building the command line tool, PCRE is optional. It is used if you build with rules.
|
2010-02-19 17:34:50 +01:00
|
|
|
|
|
|
|
There are multiple compilation choices:
|
2011-02-06 11:21:50 +01:00
|
|
|
* qmake - cross platform build tool
|
2015-07-29 10:21:04 +02:00
|
|
|
* cmake - cross platform build tool
|
2011-03-06 10:18:50 +01:00
|
|
|
* Windows: Visual Studio
|
|
|
|
* Windows: Qt Creator + mingw
|
2010-02-23 18:26:09 +01:00
|
|
|
* gnu make
|
2022-02-05 17:57:32 +01:00
|
|
|
* g++ 4.8 (or later)
|
2015-07-29 10:21:04 +02:00
|
|
|
* clang++
|
2010-02-19 17:34:50 +01:00
|
|
|
|
2019-06-27 06:51:59 +02:00
|
|
|
cmake
|
|
|
|
=====
|
|
|
|
Example, compiling Cppcheck with cmake:
|
2019-06-28 06:57:05 +02:00
|
|
|
mkdir build
|
|
|
|
cd build
|
2019-06-27 06:51:59 +02:00
|
|
|
cmake ..
|
2019-06-28 06:57:05 +02:00
|
|
|
cmake --build .
|
2019-06-27 06:51:59 +02:00
|
|
|
|
|
|
|
If you want to compile the GUI you can use the flag
|
|
|
|
-DBUILD_GUI=ON
|
|
|
|
|
|
|
|
For rules support (requires pcre) use the flag
|
|
|
|
-DHAVE_RULES=ON
|
|
|
|
|
|
|
|
For release builds it is recommended that you use:
|
|
|
|
-DUSE_MATCHCOMPILER=ON
|
|
|
|
|
2010-02-19 17:34:50 +01:00
|
|
|
qmake
|
|
|
|
=====
|
2010-12-15 18:45:53 +01:00
|
|
|
You can use the gui/gui.pro file to build the GUI.
|
2010-02-19 17:34:50 +01:00
|
|
|
cd gui
|
|
|
|
qmake
|
|
|
|
make
|
|
|
|
|
|
|
|
Visual Studio
|
|
|
|
=============
|
2019-08-01 15:03:09 +02:00
|
|
|
Use the cppcheck.sln file. The file is configured for Visual Studio 2019, but the platform
|
2015-07-29 10:21:04 +02:00
|
|
|
toolset can be changed easily to older or newer versions. The solution contains platform
|
|
|
|
targets for both x86 and x64.
|
2011-04-23 08:59:54 +02:00
|
|
|
|
2015-07-29 10:21:04 +02:00
|
|
|
To compile with rules, select "Release-PCRE" or "Debug-PCRE" configuration.
|
2015-11-01 10:29:44 +01:00
|
|
|
pcre.lib (pcre64.lib for x64 builds) and pcre.h are expected to be in /externals then.
|
2019-08-01 15:03:09 +02:00
|
|
|
A current version of PCRE for Visual Studio can be obtained using vcpkg:
|
|
|
|
https://github.com/microsoft/vcpkg
|
2011-03-06 10:18:50 +01:00
|
|
|
|
|
|
|
Qt Creator + mingw
|
|
|
|
==================
|
|
|
|
The PCRE dll is needed to build the CLI. It can be downloaded here:
|
|
|
|
http://software-download.name/pcre-library-windows/
|
2010-02-19 17:34:50 +01:00
|
|
|
|
2010-02-23 18:26:09 +01:00
|
|
|
gnu make
|
|
|
|
========
|
2013-12-26 18:41:51 +01:00
|
|
|
Simple build (no dependencies):
|
2011-11-10 20:49:55 +01:00
|
|
|
make
|
2010-02-23 18:26:09 +01:00
|
|
|
|
2013-12-26 18:41:51 +01:00
|
|
|
The recommended release build is:
|
2019-08-17 10:53:07 +02:00
|
|
|
make MATCHCOMPILER=yes FILESDIR=/usr/share/cppcheck HAVE_RULES=yes
|
2013-12-26 18:41:51 +01:00
|
|
|
|
|
|
|
Flags:
|
2019-08-17 10:53:07 +02:00
|
|
|
MATCHCOMPILER=yes : Python is used to optimise cppcheck at compile time
|
|
|
|
FILESDIR=/usr/share/cppcheck : Specify folder where cppcheck files are installed
|
|
|
|
HAVE_RULES=yes : Enable rules (pcre is required if this is used)
|
2013-01-12 14:05:03 +01:00
|
|
|
|
2010-02-19 17:34:50 +01:00
|
|
|
g++ (for experts)
|
|
|
|
=================
|
2011-02-12 08:50:38 +01:00
|
|
|
If you just want to build Cppcheck without dependencies then you can use this command:
|
2023-05-07 08:29:38 +02:00
|
|
|
g++ -o cppcheck -std=c++11 -Iexternals -Iexternals/picojson -Iexternals/simplecpp -Iexternals/tinyxml2 -Ilib cli/*.cpp lib/*.cpp externals/simplecpp/simplecpp.cpp externals/tinyxml2/*.cpp
|
2011-02-12 08:50:38 +01:00
|
|
|
|
|
|
|
If you want to use --rule and --rule-file then dependencies are needed:
|
2023-05-07 08:29:38 +02:00
|
|
|
g++ -o cppcheck -std=c++11 -lpcre -DHAVE_RULES -Ilib -Iexternals -Iexternals/picojson -Iexternals/simplecpp -Iexternals/tinyxml2 cli/*.cpp lib/*.cpp externals/simplecpp/simplecpp.cpp externals/tinyxml2/*.cpp
|
2013-01-12 14:05:03 +01:00
|
|
|
|
2010-08-29 13:21:35 +02:00
|
|
|
mingw
|
|
|
|
=====
|
2013-01-12 14:05:03 +01:00
|
|
|
The "LDFLAGS=-lshlwapi" is needed when building with mingw
|
|
|
|
mingw32-make LDFLAGS=-lshlwapi
|
2010-02-19 17:34:50 +01:00
|
|
|
|
2014-02-15 08:22:13 +01:00
|
|
|
other compilers/ide
|
|
|
|
===================
|
|
|
|
|
|
|
|
1. Create a empty project file / makefile.
|
|
|
|
2. Add all cpp files in the cppcheck cli and lib folders to the project file / makefile.
|
2017-08-21 12:31:50 +02:00
|
|
|
3. Add all cpp files in the externals folders to the project file / makefile.
|
|
|
|
4. Compile.
|
2014-02-15 08:22:13 +01:00
|
|
|
|
2020-09-04 10:20:54 +02:00
|
|
|
Cross compiling Win32 (CLI) version of Cppcheck in Linux
|
2010-02-21 20:39:18 +01:00
|
|
|
|
2020-09-04 10:20:54 +02:00
|
|
|
sudo apt-get install mingw32
|
|
|
|
make CXX=i586-mingw32msvc-g++ LDFLAGS="-lshlwapi"
|
|
|
|
mv cppcheck cppcheck.exe
|
|
|
|
|
|
|
|
Packages
|
|
|
|
|
|
|
|
You can install Cppcheck with yum/apt/brew/etc.
|
|
|
|
|
|
|
|
The official rpms are built with these files:
|
|
|
|
https://src.fedoraproject.org/rpms/cppcheck/tree/master
|
2010-02-21 20:39:18 +01:00
|
|
|
|
|
|
|
Webpage
|
|
|
|
|
2021-08-28 12:46:54 +02:00
|
|
|
https://cppcheck.sourceforge.io/
|