{{ :prog:cppcheck:cppcheck-1.88-x64-setup.msi |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 [[prog:cmake|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: unusedFunction:*/cpp/boost/executor/executor.cpp unusedFunction:*/cpp/attribute/restrict1.c