Это хорошая структура каталогов для поддержки большого проекта C ++? - PullRequest
0 голосов
/ 24 октября 2019

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

Редактировать: я не смог найти слишком много постов с подробным описанием нескольких целевых выходов, а также зависимостей сторонних производителей для крупных проектов.

...