# cppcheck

> A static analysis tool for C/C++ code.
> Instead of syntax errors, it focuses on the types of bugs that compilers normally do not detect.
> More information: <https://cppcheck.sourceforge.net>.

- Recursively check the current directory, showing progress on the screen and logging error messages to a file:

`cppcheck . 2> cppcheck.log`

- Recursively check a given directory, and don't print progress messages:

`cppcheck --quiet {{path/to/directory}}`

- Check a given file, specifying which tests to perform (by default only errors are shown):

`cppcheck --enable {{error|warning|style|performance|portability|information|all}} {{path/to/file.cpp}}`

- List available tests:

`cppcheck --errorlist`

- Check a given file, ignoring specific tests:

`cppcheck --suppress {{test_id1}} --suppress {{test_id2}} {{path/to/file.cpp}}`

- Check the current directory, providing paths for include files located outside it (e.g. external libraries):

`cppcheck -I {{include/directory_1}} -I {{include/directory_2}} .`

- Check a Microsoft Visual Studio project (`*.vcxproj`) or solution (`*.sln`):

`cppcheck --project {{path/to/project.sln}}`
