工程目录结构

工程目录结构 #

目前这份结构只考虑了 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: 工程的输出目录。