C/C++ 静态分析工具
cppcheck 在不编译的情况下检查 C/C++ 代码中的越界、未初始化、泄漏、逻辑错误和可移植性问题。它适合本地和 CI 的基础检查。
cppcheck --enable=all --inconclusive src/
cppcheck --enable=warning,performance,portability src/
cppcheck --project=compile_commands.json
cppcheck --project=compile_commands.json --output-file=cppcheck.txt
cppcheck --std=c++20 -I include src/
cppcheck --suppress=missingIncludeSystem src/
cppcheck --check-level=exhaustive src/
| 选项 | 含义 |
|---|---|
--enable=all |
开启所有检查 |
--inconclusive |
包含不确定结果 |
--project |
使用 compile_commands.json |
-I |
头文件路径 |
--std |
C/C++ 标准 |
--suppress |
抑制指定告警 |
--output-file |
输出到文件 |
-I 或 compile_commands.json。--inconclusive 会增加误报;CI 里按规则筛选。--project,不要只扫单个文件。clang-tidy — Clang 静态分析gcc / clang — 编译器告警ccache — 编译缓存