С php давно всё известно. Но в отношении десктопа следует изучить структуру поподробнее.
Взято с RSDN
> У меня в проекте много разных компонентов:
> исходники,
/src/
/sources/
/includes/
/includes/
> чужие исходники,
/extern/
> ресурсы,
/src/
> либы,
/redist/
> дллки,
/redist/
> бинарники,
результат сборки ?
/result/
/output/
/output/bin/
или необходиоые для сборки?
/tools/
> скрипты,
/tools/scripts/
> логи,
/build.log
> файлы IDE,
/
/product/
> временные файлы
/output/tmp
/output/
> и быстро добавлять новые(не предусмотренные)
> компоненты,
/src/
> проекты или что то еще.
/src/
/products/
Рекомендую постмотреть на структуру KDE/QT проектов, они как раз кросс-
платформенные.
Имеет смысл начать с маленькой структуры:
/ — корень проекта с главным конфигуратором и главным сборщиком
/src — корень исходников
/src/subprojectN -подпроект, один/несколько на подсистему
/inсludes — сюда попадают все .h по тематикам после сборки проекта
/inсludes/subsystemN
/i18n — вся локализация, добавить по вкусу
/bin — результат для проверки, источник для упаковки
/bin/build-modeN — цели, debug/release/unix/win32/….
/library (aka externals, redist, modules… ) — иерархия заимствованных
компонент
/tools — утилиты сборки
> Подойдет книга или развернутая статья на эту тему. я видел разные
структуры разных проектов и понимаю, что для
> каждого проекта будет удобна своя структура. Интересует именно
> специализированная литература по теме. IDE: VS2008, Qt Creator
файлы IDE могут сосуществать вместе в
/products/
но Qt больше любит:
/src/solution.pro
/src/
Главное: не Qt решение вынеси в отдельный
проект чтобы остальные не знали о различной реализации.
/src/
/src/
/src/
И резюме:
Перетаскиваать файлы с места на место в С++ можно хоть каждый день.
главное чтобы VCS это позволяла и все нужные проекту .H и A;SO;DLL;LIB
появлялись всегда в одном и том же месте типа /includes & /lib
