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