Outils pour utilisateurs

Outils du site


prog:cppcheck

Archive v1.88 x64

En ligne de commande

cppcheck --inconclusive --enable=all -Idossier . -j 8 &> cppcheck.log
  • --inconclusive : peut entrainer des faux positifs.
  • Les dossiers inclus -I permettant au préprocesseur de travailler. Il est conseillé de mettre les include du projet, éventuellement ceux des librairies avoisinantes que l'on souhaite auditionner mais surtout pas les systèmes (ni Qt, boost). Cela augmente le temps d'analyse de façon exponentielle et ne change rien.
  • --enable=all : active toutes les règles d'analyse.
  • --check-config, --check-library : affiche les include que le préprocesseur n'a pas réussi à remplacer.

Par défaut la configuration utilise --library=std.cfg. Mais il y a de nombreux autres cas qui peuvent être intéressant à étudier : gtk, qt, …

cmake

S'intègre parfaitement avec CMake.

Il faut commencer par activer l'option set(CMAKE_EXPORT_COMPILE_COMMANDS ON).

Puis lancer la génération des fichiers Makefile avec CC="clang" CXX="clang++" cmake -S . -B build pour générer également le fichier compile_commands.json.

cppcheck --enable=all --project=compile_commands.json --error-exitcode=1 --inline-suppr --template="{file},{line},{severity},{id},{message}" --suppressions-list=../.cppcheck-suppressions

Il est important de personnaliser le message template pour afficher le code d'erreur id.

Exemple de fichier de suppression:

.cppcheck-suppressions
unusedFunction:*/cpp/boost/executor/executor.cpp
unusedFunction:*/cpp/attribute/restrict1.c
prog/cppcheck.txt · Dernière modification : 2021/04/11 21:18 de root