Я пытался выяснить хорошую структуру каталогов, которую можно поддерживать для больших проектов 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: содержит все выполняемые пользователем проекты с соответствующими заголовками и исходными файлами
- tests: файлы для проверки как исполняемых файлов, так и библиотек
- third_party: любые сторонние проекты, библиотеки и т. Д. обычно скачивается из интернета или клонируется
Я считаю, что это подходящая структура для крупных проектов, но у меня нет большого опыта работы с проектами, которые дают более 3 или 4 целей. Я хочу попросить у сообщества обратную связь, и если они согласны со структурой, изложенной выше, или имеют лучшие предложения.
Редактировать: я не смог найти слишком много постов с подробным описанием нескольких целевых выходов, а также зависимостей сторонних производителей для крупных проектов.