This commit is contained in:
Andrei Astafev 2019-04-24 08:20:13 +03:00
parent 27e60f978e
commit 83024d70bc

View File

@ -0,0 +1,104 @@
---
title: "Статический анализ кода"
category: Программирование
tags: программирование, отладка, cppcheck, iwyu, clang-tidy, cpplint, clazy,
summary:
...
## Общее описание
### clang-tidy
Установка:
```sh
sudo apt-get install clang-tidy-6.0
```
Использование:
```sh
cmake "-DCMAKE_CXX_CLANG_TIDY=/usr/bin/clang-tidy-6.0;-checks=*" path/to/source
```
This will run `/usr/bin/clang-tidy-6.0 -checks=*` on each of the C++ source files in the project being built.
### CppCheck
Установка:
```sh
sudo apt-get install cppcheck
```
Использование:
```sh
cmake "-DCMAKE_CXX_CPPCHECK=/usr/bin/cppcheck;--std=c++11" path/to/source
```
This will run /usr/bin/cppcheck;std=c++11″ source=/path/to/source/file.cxx on each c++ file in the project being built.
### CppLint
Установка:
```sh
sudo apt-get install python3-cpplint
```
Использование:
```sh
cmake "-DCMAKE_CXX_CPPLINT=/usr/local/bin/cpplint;--linelength=79" path/to/source
```
This will run /usr/local/bin/cpplint linelength=79 on each c++ file in the project being built.
### IWYU
Установка:
```sh
sudo apt-get install iwyu
```
Использование:
```sh
cmake "-DCMAKE_CXX_INCLUDE_WHAT_YOU_USE=/usr/bin/iwyu;--transitive_includes_only" ..
```
This will run /usr/bin/iwyu transitive_includes_only on each c++ file in the project being built.
### LWYU
```sh
cmake -DCMAKE_LINK_WHAT_YOU_USE=TRUE ..
```
### Clazy
Установка:
```sh
sudo apt-get install clazy
```
Использование:
```sh
CLAZY_CHECKS=level2 cmake -DCMAKE_CXX_COMPILER=clazy ..
```
### PVS-Studio