Russian Qt Forum
Сентябрь 30, 2024, 08:18 *
Добро пожаловать, Гость. Пожалуйста, войдите или зарегистрируйтесь.
Вам не пришло письмо с кодом активации?

Войти
 
  Начало   Форум  WIKI (Вики)FAQ Помощь Поиск Войти Регистрация  

Страниц: [1]   Вниз
  Печать  
Автор Тема: [Решено] Проект из нескольких составляющих.  (Прочитано 4717 раз)
voral
Гость
« : Март 30, 2011, 01:46 »

Есть проект. Три бинарника. Сейчас их собираю по отдельности. Соответственно для каждого есть свой pro файл. Есть так же и пересекающиеся исходные файлы. Пи подготовке релиза есть смысл все собирать одновременно. Можно ли это сделать написав, скажем, общий pro файл?

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

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


« Последнее редактирование: Март 30, 2011, 08:40 от voral » Записан
Fess
Гость
« Ответ #1 : Март 30, 2011, 06:11 »

делаем проект верхнего уровня

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

SUBDIRS += \
proj1 \
proj2 \
proj3 \

QtCreator будет работать со всеми сразу.
Записан
voral
Гость
« Ответ #2 : Март 30, 2011, 08:39 »

спасибо
Записан
kdm
Гость
« Ответ #3 : Апрель 02, 2011, 21:48 »

Я нагородил так, у меня виджеты свои в отдельных проектах, как мне использовать их в другом проекте?
Я пробовал просто объектный файл подцеплять, но пишит ошибку undefined reference to vtable. Проверял виджет, в тойже папке делал main и собирал как TEMPLATE = app, все работает. Как чего тут делать, не знаю. Фишка интересная.
Записан
asvil
Гость
« Ответ #4 : Апрель 02, 2011, 22:55 »

Оформляйте код, который хотите использовать в нескольких местах в виде проекта библиотеки.
Библиотеки бывают динамические и статические. Различие в одной строке в проекте. Вроде, CONFIG += static .
Подключайте данные библиотеки в нужный проект и все. Вне зависимости от статик./динамик,  примерно так: LIBS += -Ldirectory -llibrary_name.
Префиксы -L -l не опечатки.
Записан
kdm
Гость
« Ответ #5 : Апрель 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?
« Последнее редактирование: Апрель 03, 2011, 09:33 от kdm » Записан
kdm
Гость
« Ответ #6 : Апрель 03, 2011, 09:44 »

View зависит от widgetsgroup, widgetsgroup от actionlabel. Как указать зависимости?
Я думаю все-таки зависит порядок сборки от иерархии и порядка следования проектов в файле группы проектов. С этим вроде разобрался.

Сообщение "qmake does not support build directories below the source directory" значит что надо создать каталог сборки на том же уровне, что и каталог проекта (гугл же:)).
(вдруг кто столкнется).
« Последнее редактирование: Апрель 03, 2011, 10:03 от kdm » Записан
Страниц: [1]   Вверх
  Печать  
 
Перейти в:  


Страница сгенерирована за 0.123 секунд. Запросов: 21.