c++ - 这是维护大型 C++ 项目的良好目录结构吗?
问题描述
我一直在尝试找出一个可用于大型 C++ 项目的良好目录结构。在我的搜索过程中,我在这里找到了这个资源链接。如果我松散地遵循该文档中所述的结构,我似乎得到类似于以下内容的内容
.
├── CMakeLists.txt
├── build
│ ├── Executable-OutputA
│ └── Library-OutputA
├── cmake
│ └── *.cmake
├── docs
├── include
│ └── *.h
├── lib
│ ├── LibraryA
│ │ ├── *.cpp
│ │ └── *.h
│ └── LibraryB
│ ├── *.cpp
│ └── *.h
├── src
│ ├── ExecutableA
│ │ ├── *.cpp
│ │ └── *.h
│ └── ExecutableB
│ ├── *.cpp
│ └── *.h
├── tests
└── third_party
├── External-ProjectA
└── External-ProjectB
- build:保存项目生成的输出可执行文件和库
- cmake:包含项目可能需要的所有 cmake 包
- doc:保存文档文件,通常是 doxygen
- include:保存公共头文件(可能不需要,不确定)
- lib:保存用户创建的所有库及其各自的源文件和头文件
- src:保存用户创建的所有可执行项目及其各自的头文件和源文件
- 测试:用于测试可执行文件和库的文件
- third_party:任何第三方项目、库等。通常从网上下载或克隆
我相信这对于大型项目来说是一个合适的结构,但是对于产生超过 3 或 4 个目标的项目,我没有太多经验。我想向社区征求反馈意见,他们是否同意上述结构,或者有更好的建议。
编辑:我找不到太多详细说明多个目标输出以及大型项目的第三方依赖项的帖子。
解决方案
推荐阅读
- php - php数据库资产控制是怎么做的?
- javascript - 将数据推送到 Firebase 中的数组
- python - 尝试使用 .loc 在另一列中选择 jsonl 数据列,但即使密钥存在也会得到 KeyError
- flutter - 如何使用数据表在颤振中添加超过 5 列
- java - 将 ActionListener 与 JMenuBar 和 CardLayout 一起使用
- c++ - 尝试对结构向量进行排序时出错:将 'const user_info_t' 作为 'this' 参数传递会丢弃限定符 [-fpermissive]
- flutter - 在 Flutter 中使用 showDialog() 后清除 Getx 参数
- search - f(n) 具有 N 个等概率输出。找到所有产生特定输出的“n”。比基于统计数据顺序搜索更好的方法?
- android - mediaPlayer.create(mContex,R.raw.music.mp3) 我要播放的音乐不在此文件夹中
- html - 动画后移动的文本