在 Ubuntu 上进行 C++ 静态分析(Static Analysis),可以从编译器自带检查、专用静态分析工具、集成到构建系统三个层面来做。下面按“由轻到重”给你一个实用清单。
g++ -Wall -Wextra -Wpedantic -O2 -c main.cpp
推荐常用:
-Wall -Wextra -Wshadow -Wconversion -Wsign-conversion
-analyze(轻量静态分析)clang++ --analyze main.cpp
Ubuntu 安装:
sudo apt install clang
使用:
scan-build g++ main.cpp -o app
或分析整个项目:
scan-build make
查看结果会生成 HTML 报告。
sudo apt install cppcheck
基本使用:
cppcheck --enable=all main.cpp
项目级:
cppcheck --enable=all --project=compile_commands.json
常用选项:
--std=c++17
--suppress=missingInclude
sudo apt install clang-tidy
使用:
clang-tidy main.cpp -- -std=c++17
配合 CMake:
cmake -DCMAKE_EXPORT_COMPILE_COMMANDS=ON .
clang-tidy src/*.cpp
可检查:
sudo apt install pvs-studio
pvs-studio-analyzer trace -- make
pvs-studio-analyzer analyze
set(CMAKE_CXX_CLANG_TIDY "clang-tidy")
find_program(CPPCHECK cppcheck)
if(CPPCHECK)
add_custom_target(cppcheck
COMMAND ${CPPCHECK} --enable=all ${CMAKE_SOURCE_DIR})
endif()
✅ 日常开发
-Wall -Wextraclang-tidy✅ 提交前
cppcheckclang --analyze✅ CI
scan-buildclang-tidysudo apt install clang clang-tidy cppcheck
clang-tidy main.cpp -- -std=c++17
cppcheck --enable=all main.cpp
如果你愿意,我可以:
你现在是个人学习还是项目/团队使用?