# cpp_template **Repository Path**: Aweo0419/cpp_template ## Basic Information - **Project Name**: cpp_template - **Description**: No description available - **Primary Language**: Unknown - **License**: Not specified - **Default Branch**: main - **Homepage**: None - **GVP Project**: No ## Statistics - **Stars**: 0 - **Forks**: 0 - **Created**: 2025-11-08 - **Last Updated**: 2025-11-08 ## Categories & Tags **Categories**: Uncategorized **Tags**: None ## README # C++ 项目模板 一个跨平台自用 C++ 项目模板,集成了现代 C++ 开发的最佳实践和工具。 ## 特性 - ✅ **CMake 构建系统**: 跨平台构建配置 - ✅ **Google Test**: 完整的单元测试框架 - ✅ **AddressSanitizer**: 内存错误检测 - ✅ **clang-format**: 代码格式化 - ✅ **自动化脚本**: 便捷的构建和测试脚本 - ✅ **详细文档**: 包含各工具的使用指南 ## 项目结构 ``` cpp_template/ ├── CMakeLists.txt # 主 CMake 配置文件 ├── README.md # 项目说明 ├── .clang-format # 代码格式化配置 ├── include/ # 头文件目录 ├── src/ # 源代码目录 │ ├── main.cpp # 主程序入口 │ └── example.cpp # 示例实现 ├── tests/ # 测试目录 │ ├── CMakeLists.txt # 测试 CMake 配置 │ └── example_test.cpp # 示例测试 ├── scripts/ # 构建和测试脚本 │ ├── build.sh # 构建脚本 │ ├── test.sh # 测试脚本 │ └── format.sh # 格式化脚本 └── doc/ # 文档目录 ├── google-test-guide.md # Google Test 使用指南 ├── asan-guide.md # AddressSanitizer 指南 └── cmake-guide.md # CMake 使用指南 ``` ## 快速开始 ### 前置要求 - CMake 3.14 或更高版本 - C++17 兼容的编译器 (GCC 7+, Clang 5+, MSVC 2017+) - clang-format (可选,用于代码格式化) ### 构建项目 ```bash # 构建 Debug 版本 ./scripts/build.sh debug # 构建 Release 版本 ./scripts/build.sh release # 使用 AddressSanitizer 构建 ./scripts/build.sh debug --asan # 清理后重新构建 ./scripts/build.sh debug --clean ``` ### 运行测试 ```bash # 运行所有测试 ./scripts/test.sh # 使用 AddressSanitizer 运行测试 ./scripts/test.sh --asan # 详细输出 ./scripts/test.sh --verbose # 运行特定测试 ./scripts/test.sh --filter "ExampleTest.*" ``` ### 代码格式化 ```bash # 自动格式化代码 ./scripts/format.sh --fix # 检查格式(不修改文件) ./scripts/format.sh --check ``` ## 手动构建 如果不使用脚本,也可以手动构建: ```bash # 配置 cmake -B build -DCMAKE_BUILD_TYPE=Debug # 构建 cmake --build build # 运行测试 cd build && ctest --output-on-failure # 运行程序 ./build/bin/cpp_template ``` ## CMake 选项 | 选项 | 说明 | 默认值 | |------|------|--------| | `BUILD_TESTING` | 构建测试 | ON | | `ENABLE_ASAN` | 启用 AddressSanitizer | OFF | | `ENABLE_COVERAGE` | 启用代码覆盖率 | OFF | 使用示例: ```bash cmake -B build -DENABLE_ASAN=ON -DBUILD_TESTING=ON ``` ## 添加新代码 ### 添加新的源文件 1. 在 `include/` 中添加头文件 2. 在 `src/` 中添加实现文件 3. CMake 会自动检测并编译新文件 ### 添加新的测试 1. 在 `tests/` 目录创建 `*_test.cpp` 文件 2. 编写测试用例 3. 重新构建即可自动发现新测试 示例: ```cpp #include TEST(MyTest, BasicTest) { EXPECT_EQ(1 + 1, 2); } ``` ## 文档 详细的使用指南请参考 `doc/` 目录: - [Google Test 使用指南](doc/google-test-guide.md) - [AddressSanitizer 指南](doc/asan-guide.md) - [CMake 使用指南](doc/cmake-guide.md) ## 常见问题 ### Q: 如何更改 C++ 标准? 编辑 `CMakeLists.txt` 中的以下行: ```cmake set(CMAKE_CXX_STANDARD 17) # 改为 11, 14, 17, 20, 23 ``` ### Q: 如何添加第三方库? 使用 CMake 的 `find_package` 或 `FetchContent`: ```cmake # 使用 find_package find_package(Boost REQUIRED) target_link_libraries(${PROJECT_NAME}_lib PRIVATE Boost::boost) # 或使用 FetchContent include(FetchContent) FetchContent_Declare( library_name GIT_REPOSITORY https://github.com/user/library.git GIT_TAG v1.0.0 ) FetchContent_MakeAvailable(library_name) ``` ### Q: 如何在 Windows 上使用? 1. 安装 CMake 和 Visual Studio 2. 打开命令提示符或 PowerShell 3. 运行: ```bash cmake -B build -G "Visual Studio 17 2022" cmake --build build --config Debug ``` ### Q: 测试失败怎么办? ```bash # 查看详细输出 ./scripts/test.sh --verbose # 或者直接运行测试可执行文件 ./build/bin/tests/example_test ``` ## 最佳实践 1. **定期运行测试**: 每次修改后运行测试确保功能正常 2. **使用 ASAN**: 定期使用 AddressSanitizer 检测内存问题 3. **保持格式一致**: 提交前运行 `format.sh` 格式化代码 4. **编写测试**: 为新功能编写测试用例 5. **文档更新**: 重要修改记得更新文档 ## 许可证 请根据项目需求添加适当的许可证。 ## 贡献 欢迎贡献!请遵循项目的编码规范和提交流程。 ---