工程目录结构 #
目前这份结构只考虑了 C/C++ 的工程
project_root
|- 3rdparty
|- builds(platforms)
|- cmake
|- bin
|- lib
|- include
|- project_name
|- module_1
|- module_2
|- config
|- readme.md
|- data
|- test
|- sample
|- scripts
|- doc
readme.md
: 自述文件。3rdparty
: 第三方库的源代码。以子项目(git submodule
)的形式存在,如果没有则不需要这文件夹。data
: 存放测试数据,可以没有。test
: 存放单元测试代码,其内部层级结构与 src 一致。sample
: 存放示例代码。doc
: 存放文档(如果文档全上 wiki 这个是不是可以不要?)。builds(platforms)
: 构建系统,里面根据不同平台再划分一级目录,分别存放对应的构建脚本(cmake、makefile 等)。cmake
: 存放.cmake
文件,不使用 cmake 可以不要这个目录project_name
: 总源码目录,内部分模块组织。- 每个模块放在同名的文件夹下,模块内部存放该模块的主要功能逻辑代码,但不可以出现模块嵌套的情况。
- 包含内部头文件时,要从
project_name
开拼写完整路径,防止头文件名称冲突,遵循 google c++ 编码规范。 config
: 存放配置文件模板。scripts
: 存放脚本文件,如发布脚本。include
: 第三方库的头文件。lib
: 三/二方库的库文件。bin
: 工程的输出目录。