Russian Qt Forum

Qt => Установка, сборка, отладка, тестирование => Тема начата: voral от Март 30, 2011, 01:46



Название: [Решено] Проект из нескольких составляющих.
Отправлено: voral от Март 30, 2011, 01:46
Есть проект. Три бинарника. Сейчас их собираю по отдельности. Соответственно для каждого есть свой pro файл. Есть так же и пересекающиеся исходные файлы. Пи подготовке релиза есть смысл все собирать одновременно. Можно ли это сделать написав, скажем, общий pro файл?

Я попробовал так
Код:
include(app1/app1.pro)
include(app2/app2.pro)
include(app3/app3.pro)

Но ни собрать в консоли, ни открыть/собрать в Creator не получилось. В креатое открываются только заинклюженные pro файлы. Как я понимаю тут дело и в относительных путях пописанных в каждом pro файле. Но писать абсолютные - не ваиант...




Название: Re: Проект из нескольких составляющих.
Отправлено: Fess от Март 30, 2011, 06:11
делаем проект верхнего уровня

.pro:
Код:
TEMPLATE = subdirs
CONFIG += ordered

SUBDIRS += \
proj1 \
proj2 \
proj3 \

QtCreator будет работать со всеми сразу.


Название: Re: Проект из нескольких составляющих.
Отправлено: voral от Март 30, 2011, 08:39
спасибо


Название: Re: [Решено] Проект из нескольких составляющих.
Отправлено: kdm от Апрель 02, 2011, 21:48
Я нагородил так, у меня виджеты свои в отдельных проектах, как мне использовать их в другом проекте?
Я пробовал просто объектный файл подцеплять, но пишит ошибку undefined reference to vtable. Проверял виджет, в тойже папке делал main и собирал как TEMPLATE = app, все работает. Как чего тут делать, не знаю. Фишка интересная.


Название: Re: [Решено] Проект из нескольких составляющих.
Отправлено: asvil от Апрель 02, 2011, 22:55
Оформляйте код, который хотите использовать в нескольких местах в виде проекта библиотеки.
Библиотеки бывают динамические и статические. Различие в одной строке в проекте. Вроде, CONFIG += static .
Подключайте данные библиотеки в нужный проект и все. Вне зависимости от статик./динамик,  примерно так: LIBS += -Ldirectory -llibrary_name.
Префиксы -L -l не опечатки.


Название: Re: [Решено] Проект из нескольких составляющих.
Отправлено: kdm от Апрель 03, 2011, 09:30
А как указать зависимости? Например у меня проект ActionLabel, который в группе проектов Widgets, в той же группе и WidgetsGroup, которому нужна собранный ActionLabel.
То есть получается так.

Код:
ViewGeneral
 |
  - View
 |
  - Widgets
     |
      - WidgetsGroup
     |
      - ActionLabel
   
View зависит от widgetsgroup, widgetsgroup от actionlabel. Как указать зависимости?

И что значит сообщение: qmake does not support build directories below the source directory?


Название: Re: [Решено] Проект из нескольких составляющих.
Отправлено: kdm от Апрель 03, 2011, 09:44
View зависит от widgetsgroup, widgetsgroup от actionlabel. Как указать зависимости?
Я думаю все-таки зависит порядок сборки от иерархии и порядка следования проектов в файле группы проектов. С этим вроде разобрался.

Сообщение "qmake does not support build directories below the source directory" значит что надо создать каталог сборки на том же уровне, что и каталог проекта (гугл же:)).
(вдруг кто столкнется).