Russian Qt Forum
Ноябрь 26, 2024, 02:38
Добро пожаловать,
Гость
. Пожалуйста,
войдите
или
зарегистрируйтесь
.
Вам не пришло
письмо с кодом активации?
1 час
1 день
1 неделя
1 месяц
Навсегда
Войти
Начало
Форум
WIKI (Вики)
FAQ
Помощь
Поиск
Войти
Регистрация
Russian Qt Forum
>
Forum
>
Qt
>
Qt-инструментарий
>
Очень много проектов...
Страниц:
1
[
2
]
3
Вниз
« предыдущая тема
следующая тема »
Печать
Автор
Тема: Очень много проектов... (Прочитано 16411 раз)
Гурман
Гуру общения
Offline
Сообщений: 1442
Qt 2.2, 3.3, 4.5, 4,7, 4.8, 5.3, 5.6, 5.9, 5.12
Re: Очень много проектов...
«
Ответ #15 :
Апрель 22, 2015, 11:14 »
Хм. У меня в каталоге, который родительский для всех модулей проекта, лежит файл .pro с TEMPLATE = subdirs и т.д. от 2011 года, когда проект начинался. Почему-то я этот вариант тогда забросил - что-то не работало. Но тогда проектов был всего десяток. Придётся попробовать ещё раз.
Записан
2^7-1 == 127, задумайтесь...
Kurles
Бывалый
Offline
Сообщений: 480
Re: Очень много проектов...
«
Ответ #16 :
Апрель 22, 2015, 12:07 »
Цитата: Гурман от Апрель 22, 2015, 11:14
Хм. У меня в каталоге, который родительский для всех модулей проекта, лежит файл .pro с TEMPLATE = subdirs и т.д. от 2011 года, когда проект начинался. Почему-то я этот вариант тогда забросил - что-то не работало. Но тогда проектов был всего десяток. Придётся попробовать ещё раз.
Надо просто этот про файл и открывать. Ну и в подпроектах так же TEMPLATE = subdirs использовать.
Записан
Код
C++ (Qt)
while
(
!
asleep
(
)
)
sheep
++;
Гурман
Гуру общения
Offline
Сообщений: 1442
Qt 2.2, 3.3, 4.5, 4,7, 4.8, 5.3, 5.6, 5.9, 5.12
Re: Очень много проектов...
«
Ответ #17 :
Апрель 22, 2015, 12:48 »
Цитата: Kurles от Апрель 22, 2015, 12:07
Цитата: Гурман от Апрель 22, 2015, 11:14
Хм. У меня в каталоге, который родительский для всех модулей проекта, лежит файл .pro с TEMPLATE = subdirs и т.д. от 2011 года, когда проект начинался. Почему-то я этот вариант тогда забросил - что-то не работало. Но тогда проектов был всего десяток. Придётся попробовать ещё раз.
Надо просто этот про файл и открывать. Ну и в подпроектах так же TEMPLATE = subdirs использовать.
Не... я тогда его почему-то забросил. Что-то с ним было не так, что именно - разумеется не помню. Но у меня в QtCreator "последнее состояние" с тех пор всё равно открывало все проекты по-отдельности.
Записан
2^7-1 == 127, задумайтесь...
Гурман
Гуру общения
Offline
Сообщений: 1442
Qt 2.2, 3.3, 4.5, 4,7, 4.8, 5.3, 5.6, 5.9, 5.12
Re: Очень много проектов...
«
Ответ #18 :
Апрель 23, 2015, 00:06 »
Вроде получается, но возник такой вопрос - можно ли при использовании SUBDIRS передавать макро-имена из верхнего проекта в нижний? То есть, если у меня есть проект wx.pro со строками
TEMPLATE = SUBDIRS
SUBDIRS = w ci_w ciw
я могу в нём как-то определить переменную, например, OUTNAME = button и потом использовать её в проектах w.pro, ci_w.pro и ciw.pro?
PS: не совсем получается. Сами подпроекты по-отдельности нормально собираются, но при сборке проекта - :-1: ошибка: Makefile.Debug: No such file or directory. Проект wbutton.pro выглядит так:
TEMPLATE = SUBDIRS
SUBDIRS = w ci_w ciw
Структура в нём:
Directory wbutton
wbutton.pro
<DIR> ciw
<DIR> ci_w
<DIR> w
Directory wbutton\ciw
ciw.pro
ciw.h
ciw.cpp
Directory wbutton\ci_w
ci_w.pro
ci_w.c
Directory wbutton\w
w.pro
w.h
w.cpp
w.png
w.qrc
Что не так?
«
Последнее редактирование: Апрель 23, 2015, 00:27 от Гурман
»
Записан
2^7-1 == 127, задумайтесь...
Kurles
Бывалый
Offline
Сообщений: 480
Re: Очень много проектов...
«
Ответ #19 :
Апрель 23, 2015, 10:23 »
Цитата: Гурман от Апрель 23, 2015, 00:06
Вроде получается, но возник такой вопрос - можно ли при использовании SUBDIRS передавать макро-имена из верхнего проекта в нижний? То есть, если у меня есть проект wx.pro со строками
TEMPLATE = SUBDIRS
SUBDIRS = w ci_w ciw
я могу в нём как-то определить переменную, например, OUTNAME = button и потом использовать её в проектах w.pro, ci_w.pro и ciw.pro?
PS: не совсем получается. Сами подпроекты по-отдельности нормально собираются, но при сборке проекта - :-1: ошибка: Makefile.Debug: No such file or directory. Проект wbutton.pro выглядит так:
TEMPLATE = SUBDIRS
SUBDIRS = w ci_w ciw
Структура в нём:
Directory wbutton
wbutton.pro
<DIR> ciw
<DIR> ci_w
<DIR> w
Directory wbutton\ciw
ciw.pro
ciw.h
ciw.cpp
Directory wbutton\ci_w
ci_w.pro
ci_w.c
Directory wbutton\w
w.pro
w.h
w.cpp
w.png
w.qrc
Что не так?
1. скорее всего только через инклюды *.pri файлов или через создание .qmake.cache (сам не использовал этот метод, но видел, что он используется в QSerialPort, посмотри там)
2. вроде всё так. Попробуй очистку сделать и заново qmake запустить.
Записан
Код
C++ (Qt)
while
(
!
asleep
(
)
)
sheep
++;
gil9red
Administrator
Джедай : наставник для всех
Offline
Сообщений: 1805
Re: Очень много проектов...
«
Ответ #20 :
Апрель 23, 2015, 10:30 »
С pri делал вот в этом проекте:
https://github.com/gil9red/NotesManager/blob/master/NotesManager.pro
Записан
https://github.com/gil9red
https://ru.stackoverflow.com/users/201445/gil9red
Гурман
Гуру общения
Offline
Сообщений: 1442
Qt 2.2, 3.3, 4.5, 4,7, 4.8, 5.3, 5.6, 5.9, 5.12
Re: Очень много проектов...
«
Ответ #21 :
Апрель 23, 2015, 13:00 »
Цитата: Kurles от Апрель 23, 2015, 10:23
1. скорее всего только через инклюды *.pri файлов или через создание .qmake.cache (сам не использовал этот метод, но видел, что он используется в QSerialPort, посмотри там)
2. вроде всё так. Попробуй очистку сделать и заново qmake запустить.
С .pri можно, но топорно... Или через переменные среды, но так еще хуже.
Очистку делал, qmake перезапускал - не помогает ничего. Глухо ошибка при сборке верхнего проекта. Причем мгновенно, то есть, на верхнем уровне где-то, не в самих проектах.
Вроде нашел, TEMPLATE = subdirs должно быть, регистр важен. Но спотыкается на файле заголовков, не находит его, хотя он точно имеется.
«
Последнее редактирование: Апрель 23, 2015, 13:26 от Гурман
»
Записан
2^7-1 == 127, задумайтесь...
Kurles
Бывалый
Offline
Сообщений: 480
Re: Очень много проектов...
«
Ответ #22 :
Апрель 23, 2015, 13:27 »
Цитата: Гурман от Апрель 23, 2015, 13:00
WARNING: Unable to generate output for: ......../wbutton-build-desktop//Makefile.Release [TEMPLATE SUBDIRS]
WARNING: Unable to generate output for: ......../wbutton-build-desktop//Makefile.Debug [TEMPLATE SUBDIRS]
Видимо из-за двойных слэшей, откуда он их взял? Нигде в настройках их не видно.
Может быть здесь?
Записан
Код
C++ (Qt)
while
(
!
asleep
(
)
)
sheep
++;
Гурман
Гуру общения
Offline
Сообщений: 1442
Qt 2.2, 3.3, 4.5, 4,7, 4.8, 5.3, 5.6, 5.9, 5.12
Re: Очень много проектов...
«
Ответ #23 :
Апрель 23, 2015, 13:39 »
Нет. Косяк в TEMPLATE = SUBDIRS, должно быть subdirs.
Вроде заработало... Во всяком случае проект с тремя подпроектами собрался. Теперь надо супер-проект сделать, который все проекты собирать будет.
«
Последнее редактирование: Апрель 23, 2015, 16:06 от Гурман
»
Записан
2^7-1 == 127, задумайтесь...
Igors
Джедай : наставник для всех
Offline
Сообщений: 11445
Re: Очень много проектов...
«
Ответ #24 :
Апрель 24, 2015, 07:56 »
Цитата: Гурман от Апрель 23, 2015, 13:39
Теперь надо супер-проект сделать, который все проекты собирать будет.
Иногда лучше главный (большой) проект держать одним, а вот все плагины/либы собрать в другом
Записан
Гурман
Гуру общения
Offline
Сообщений: 1442
Qt 2.2, 3.3, 4.5, 4,7, 4.8, 5.3, 5.6, 5.9, 5.12
Re: Очень много проектов...
«
Ответ #25 :
Апрель 24, 2015, 11:47 »
Цитата: Igors от Апрель 24, 2015, 07:56
Цитата: Гурман от Апрель 23, 2015, 13:39
Теперь надо супер-проект сделать, который все проекты собирать будет.
Иногда лучше главный (большой) проект держать одним, а вот все плагины/либы собрать в другом
Иногда - наверно да. Но не в моем случае. "Главный проект" - это интегратор плагинов, всё приложение строится из них.
Записан
2^7-1 == 127, задумайтесь...
Гурман
Гуру общения
Offline
Сообщений: 1442
Qt 2.2, 3.3, 4.5, 4,7, 4.8, 5.3, 5.6, 5.9, 5.12
Re: Очень много проектов...
«
Ответ #26 :
Май 15, 2015, 01:10 »
up
Во всей этой структуре, не работает один момент - почему-то при изменениях одного из хидеров, не пересобираются подпроекты, в которые он входит. Зависимости в проектах разумеется прописаны. Хидер лежит не в каталогах этих проектов, он лежит сбоку и является общим для подпроектов:
В подпроектах написано:
INCLUDEPATH += ../../max15 \
../../Integrator
SOURCES += \
w.cpp
HEADERS += \
../../max15/interface.h \
../../Integrator/wcontrol.h \
w.h \
../../Integrator/wcinculdes.h
wcontrol.h включен в w.h, а w.h в w.cpp - во всех подпроектах этого уровня все имена w.h и w.cpp одинаковые, но содержимое разное
Вот при изменении wcontrol.h подпроекты не собираются. И каждый раз при изменении wcontrol.h приходится полностью пересобирать все подпроекты, в которые он включен. Сейчас их 4, а будет 22... Они входят в главный суперпроект, который subirs. А его пересборка сейчас уже занимает 10 минут.
Где собака порылась? Сообщений об ошибках в маршрутах нет, все файлы доступны.
Записан
2^7-1 == 127, задумайтесь...
twp
Гость
Re: Очень много проектов...
«
Ответ #27 :
Май 21, 2015, 13:16 »
В Qt4 это должно лечится так
Код:
CONFIG *= depend_includepath
А в пятерке эта опция вроде как
по умолчанию
Записан
Гурман
Гуру общения
Offline
Сообщений: 1442
Qt 2.2, 3.3, 4.5, 4,7, 4.8, 5.3, 5.6, 5.9, 5.12
Re: Очень много проектов...
«
Ответ #28 :
Май 21, 2015, 20:50 »
Цитата: twp от Май 21, 2015, 13:16
В Qt4 это должно лечится так
Код:
CONFIG *= depend_includepath
А в пятерке эта опция вроде как
по умолчанию
О! Наконец-то... А что будет, если эта настройка останется при переходе на 5-ку?
Записан
2^7-1 == 127, задумайтесь...
twp
Гость
Re: Очень много проектов...
«
Ответ #29 :
Май 21, 2015, 22:08 »
Цитата: Гурман от Май 21, 2015, 20:50
О! Наконец-то... А что будет, если эта настройка останется при переходе на 5-ку?
Ничего. Просто использование *= для установки в CONFIG исключает дублирование параметров, в отличие от +=. Но и в случае дублирование этого параметра тоже ничего страшного не будет. И единственное что может в корне поменять (и по сути сделать как в Qt4), так это удаление этого параметра:
Код:
CONFIG -= depend_includepath
Записан
Страниц:
1
[
2
]
3
Вверх
Печать
« предыдущая тема
следующая тема »
Перейти в:
Пожалуйста, выберите назначение:
-----------------------------
Qt
-----------------------------
=> Вопросы новичков
=> Уроки и статьи
=> Установка, сборка, отладка, тестирование
=> Общие вопросы
=> Пользовательский интерфейс (GUI)
=> Qt Quick
=> Model-View (MV)
=> Базы данных
=> Работа с сетью
=> Многопоточное программирование, процессы
=> Мультимедиа
=> 2D и 3D графика
=> OpenGL
=> Печать
=> Интернационализация, локализация
=> QSS
=> XML
=> Qt Script, QtWebKit
=> ActiveX
=> Qt Embedded
=> Дополнительные компоненты
=> Кладовая готовых решений
=> Вклад сообщества в Qt
=> Qt-инструментарий
-----------------------------
Программирование
-----------------------------
=> Общий
=> С/C++
=> Python
=> Алгоритмы
=> Базы данных
=> Разработка игр
-----------------------------
Компиляторы и платформы
-----------------------------
=> Linux
=> Windows
=> Mac OS X
=> Компиляторы
===> Visual C++
-----------------------------
Разное
-----------------------------
=> Новости
===> Новости Qt сообщества
===> Новости IT сферы
=> Говорилка
=> Юмор
=> Объявления
Загружается...