| Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате |
| Форум программистов > С/С++: Кроссплатформенное программирование, Qt/Gtk+/wxWidgets > [Qt] структура и организация проекта |
| Автор: CompWorm 6.8.2012, 21:03 |
| Привет! Допустим, у меня есть несколько связанных проектов Qt в qtCreator (например, несколько статических либ и несколько гуёв или клиент и сервер) как лучше организовать работу? в VS можно создать солюшан, в котором будут сидеть несколько проектов. как подобное реализовать в qt creator? иногда собрав один проект, требуется сразу пересобрать какие-то зависимые. Как это сделать одним нажатием на билд? |
| Автор: math64 7.8.2012, 07:48 | ||
Создаётся subdir проект,
В подкаталогах mylibrary myserver myclient размещаются вложенные проекты. Ресурсы в разных проектах ложить под разными префиксами - в дизайнере Qt Creator будет предлагать ресурсы из всех проектов, с одинаковым префиксом их будет не различить, а из клиента можно пользоваться ресурсами только клиента и библиотеки, но не сервера. |
| Автор: CompWorm 15.8.2012, 22:59 |
| math64, спасибо+, это получилось. хорошо, а кто может наглядно рассказать какая должна быть файловая структура проекта? то есть допустим есть гуи, либы, сторонние либы, вспомогательные тулзы и ресурсы. в конечном итоге юзеру выдаются исходники, которые должны собираться обычным сишным компилятором под его платформу. Когда всё собрано, программа должна без проблем заворачиваться в пакет с помощью checkinstall под линем и в инстоляшку под виндой (это конечно будет делаться скриптами, но тут важно чтоб структура проекта способствовала простоте). основная идея, я так понимаю - иметь отдельную папку для исходников (туда исходники будем качать с svn) и отдельное место для сборки, конечных бинарей и либ. я почитал, что с CMake проекты qt настраивать очень геморно для разных платформ... какие есть предложения? как вы организуете свои проекты? |
| Автор: math64 16.8.2012, 08:30 |
| QtCreator умеет работать с CMake. Но файл проекта придётся редактировать вручную. Как в CMake подключить ресурсы, ui, moc - не знаю. Использую qmake, проекты объединяю с помощью subdirs. В каждом подпроекте указываю каталоги для исходников, промежуточных файлов, бинарника. Пользуюсь Mercurial - но push и merge делаю из командной строки. |
| Автор: CompWorm 16.8.2012, 14:49 |
| звучит напряжно. ещё кто-нибудь пробовал красиво структурировать проект? Добавлено через 2 минуты и 57 секунд может статьи толковые кто видел? |
| Автор: CompWorm 20.8.2012, 21:31 | ||
| Ладно, раз больше желающих высказаться нет, пишу свой вариант: нашёл пару статей по сборки qt проекта из cmake http://qt-project.org/quarterly/view/using_cmake_to_build_qt_projects, http://symmetrica.net/cmake/CMake-4.htm у меня собралось с cmake v2.8.9 без проблем. общую структуру проекта избрал следующую:
Source не гадим, контролируем его через svn/git , у него же в корне лежит файл cmake по которому все собирается в папку Build. такая структура удобна и тем, что достаточно тривиальным скриптом на линуксовом сервере сборки всё чудным образом собирается, закатывается в пакет с checkinstall и через wine создаётся виндус инстоляшка. пока всё просто, но по мере усложнения возможно появятся вопросы... Добавлено через 9 минут и 20 секунд да, вот это я пока не придумал как настроить. тут проблема в том, что корневой каталог для сборки указывается в *.pro.user файле, а в *.pro пути указываются уже относительно этого адреса... то есть каждый кто скачал проект, должен как - то вручную все пути вписывать в настройках, что не очевидно и черевато ошибками при коммитах, так как по умолчанию qtCreator всё собирает там же где и исходники.... |
| Автор: math64 21.8.2012, 08:36 | ||
У меня структура такая:
Насторойки для project1 создаются вручную, для project2 копипастятся. При добавлении нового файла в проект нужно следить, чтобы QtCreator положил его в нужный каталог. |