目录结构
project_root/
├── bin/ # 可执行文件目录
│ ├── my_app # 可执行文件
│ └── ... # 其他可执行文件或脚本
│
├── build/ # 编译产物目录
│ └── ... # 编译生成的中间文件和可执行文件
│
├── include/ # 头文件目录
│ ├── MyClass.h # 类的头文件
│ └── ... # 其他头文件
│
├── lib/ # 外部库目录(可选)
│ └── ... # 外部库文件
│
├── resources/ # 资源文件目录
│ ├── images/ # 图片文件
│ │ └── logo.png
│ ├── config/ # 配置文件
│ │ └── app_config.json
│ └── data/ # 数据文件
│ └── data.csv
│
├── src/ # 源代码目录
│ ├── main.cpp # 主函数文件
│ ├── MyClass.cpp # 类的实现文件
│ └── ... # 其他源文件
│
├── tests/ # 测试代码目录(可选)
│ ├── test_main.cpp # 测试主函数文件
│ └── ... # 其他测试文件
│
├── CMakeLists.txt # CMake 构建脚本(如果使用 CMake)
├── Makefile # Makefile 构建脚本(如果使用 Make)
├── README.md # 项目说明文件
└── LICENSE # 许可证文件
bin 和 build 的区别
bin
- 用途:
bin
目录通常用于存放构建完成后生成的可执行文件或脚本。它是最终用户运行程序时所需的文件所在的目录。
- 特点:
- 可以包含在版本控制中,尤其是在发布可执行文件或脚本时。
- 是一个相对稳定的目录,即使清空
build
目录,bin
目录中的文件也应保持不变。
- 在一些项目中,
bin
目录也可以包含开发工具或辅助脚本。
build
- 用途:
build
目录通常用于存放编译过程中生成的中间文件和最终的可执行文件。它是一个临时目录,包含编译产物,如对象文件(.o
或 .obj
)、依赖文件、生成的 Makefile 或其他构建系统的文件。
- 特点:
- 是一个临时目录,可以随时清空或删除而不会影响源代码。
- 通常不包含在版本控制中(例如,通过
.gitignore
忽略)。
- 有时不同的构建配置(如 Debug 和 Release)会有各自的子目录。