C++项目目录组织结构

项目目录结构的问题基本上是个仁者见仁,智者见智的问题,只要自己用着顺手,使用什么样的目录组织结构是没有什么大碍的。当然如果项目很大,参与的人员很多,那么合理的组织一下目录结构还是会有很大的益处的。不同类型的项目也会有不同的目录结构,这里简单的展示一下我所使用的C++项目的基本目录结构。

project —+—build—+—debug
          —release
     —dist
     —doc
     —include—+—module1
           —module2
     —lib
     —module1
     —module2
     —res
     —samples—+—sample1
           —sample2
     —tools
     —copyleft
     —Makefile
     —README
     — …

下面分别介绍一下各目录和文件的用途

build/:项目编译目录,各种编译的临时文件和最终的目标文件皆存于此,分为debug/和release/子目录

dist/:分发目录,最终发布的可执行程序和各种运行支持文件存放在此目录,打包此目录即可完成项目分发

doc/:保存项目各种文档

include/:公共头文件目录,可以按模块划分组织目录来保存模块相关头文件

lib/:外部依赖库目录

res/:资源目录

samples/:样例程序目录

tools/:项目支撑工具目录

copyleft:版权声明文件,当然也可以叫做copyright :-)

Makefile:项目构建配置文件,当然也有可能是其他类型的构建配置文件,比如bjam

README:项目的总体说明文件