Conan 2 + CMake 驱动的 C++ 模板项目,支持自动扫描源文件、一键编译运行、常用工具链集成。
# 克隆到本地
git clone -b cpp-scholar git@github.com:ee-wizard/ProjectTemplates.git my-cpp-project
cd my-cpp-project
# 首次配置(安装依赖 + CMake 配置)
conan install . --output-folder=build --build=missing
cmake --preset conan-release
# 编译
cmake --build build
├── CMakeLists.txt ← 自动扫描,无需手动维护
├── conanfile.txt ← Conan 依赖
├── .clang-format ← 代码格式规范
├── include/ ← 公共头文件 (.h / .hpp)
├── src/
│ ├── main.cpp → build/main(自动生成可执行文件)
│ ├── common/ ← 编译为静态库,自动链接到所有可执行文件
│ └── (任意 .cpp / .c) ← 新建即自动生成可执行文件
└── .vscode/ ← VS Code 任务/调试/IntelliSense 配置
| 放哪里 |
作用 |
src/*.cpp / src/*.c |
每个文件生成同名可执行文件(需含 main 函数) |
src/common/* |
编译为 common_lib 静态库,所有可执行文件自动链接 |
include/ |
公共头文件目录(#include "xxx.h") |
| 操作 |
快捷键 |
| 编译当前文件 |
Ctrl+Shift+B |
| 编译并运行当前文件 |
Ctrl+Shift+T |
| 调试当前文件 |
F5 |
| 首次 / 新增文件后 |
运行任务 Configure (once) |
| 工具 |
作用 |
Release |
Debug |
| ccache |
编译缓存加速 |
✅ 自动 |
✅ 自动 |
| clang-tidy |
静态代码分析 |
✅ 编译时 |
✅ 编译时 |
| clang-format |
代码格式化 |
Ctrl+Shift+I / 保存时自动 |
|
| -O3 + LTO + march=native |
CPU 级优化 |
✅ |
— |
| AddressSanitizer |
内存错误检测 |
— |
✅ |
| UBSan |
未定义行为检测 |
— |
✅ |
| compile_commands.json |
IntelliSense / LSP |
✅ 自动生成 |
✅ 自动生成 |
# 添加依赖
# 编辑 conanfile.txt,在 [requires] 下添加,例如:
# opencv/4.10.0
# 然后重新运行:
conan install . --output-folder=build --build=missing
# 在 CMakeLists.txt 中链接:
# find_package(opencv CONFIG REQUIRED)
# target_link_libraries(xxx PRIVATE opencv::opencv)