Russian Qt Forum
Ноябрь 22, 2024, 11:56
Добро пожаловать,
Гость
. Пожалуйста,
войдите
или
зарегистрируйтесь
.
Вам не пришло
письмо с кодом активации?
1 час
1 день
1 неделя
1 месяц
Навсегда
Войти
Начало
Форум
WIKI (Вики)
FAQ
Помощь
Поиск
Войти
Регистрация
Russian Qt Forum
>
Forum
>
Разное
>
Говорилка
>
Кто какую систему сборки использует?
Голосование
Вопрос:
Кто какую систему сборки использует для своих проектов?
CMake
7 (17.5%)
qmake
26 (65%)
qbs
5 (12.5%)
autotools
0 (0%)
MSVC
2 (5%)
Всего голосов: 29
Страниц:
1
[
2
]
3
4
Вниз
« предыдущая тема
следующая тема »
Печать
Автор
Тема: Кто какую систему сборки использует? (Прочитано 32997 раз)
__Heaven__
Джедай : наставник для всех
Offline
Сообщений: 2130
Re: Кто какую систему сборки использует?
«
Ответ #15 :
Март 29, 2017, 13:58 »
Цитата: Igors от Март 29, 2017, 13:53
Шо за "сборки/разборки" - хз.
rly?
Сборка (программирование)
Записан
kai666_73
Крякер
Offline
Сообщений: 319
Re: Кто какую систему сборки использует?
«
Ответ #16 :
Март 29, 2017, 14:04 »
Цитата: Igors от Март 29, 2017, 13:53
На ОSX соответственно Xcode. Шо за "сборки/разборки" - хз. Само слово гнусное: "собирать" - а не надо было разбрасывать.
ПлюсЫ, Qt, кроссплатформенность... не? мысль улавливаете?
Нужен универсальный способ собирать исходники на разных платформах.
Потому вопрос о предпочтении qmake|cmake|qbs..., а не MSVC|Xcode...
«
Последнее редактирование: Март 29, 2017, 14:08 от kai666_73
»
Записан
ViTech
Гипер активный житель
Offline
Сообщений: 858
Re: Кто какую систему сборки использует?
«
Ответ #17 :
Март 29, 2017, 14:10 »
Цитата: __Heaven__ от Март 29, 2017, 13:47
Всё это делаю через интерфейс qtcreator (qmake). Контроль версий (git) не спотыкается. При удалении файла спрашивает удалить ли из контроля, при добавлении сразу же делает git add, после переименовывания, в окне создания коммита я вижу, что у файла поменялся путь.
Такими возможностями креатора не пользовался, мне в винде намного удобней это в TortoiseGit делать
. Сейчас попробовал в проекте Qbs в креаторе файлы переименовывать/удалять, с git корректно работает. Выдаётся предупреждение, что не может файл переименовать/удалить в проектном qbs-файле, но там они поштучно и не описаны
. Правда приходится руками жать "Build/Reparse Qbs", это похоже на косяк, могло бы и автоматом это делаться, раз файл изменился.
Записан
Пока сам не сделаешь...
qate
Супер
Offline
Сообщений: 1177
Re: Кто какую систему сборки использует?
«
Ответ #18 :
Март 29, 2017, 14:46 »
Цитата: lit-uriy от Март 29, 2017, 13:33
Если у тебя в исходниках есть одноимённые файлы, например:
да, так не получится, но это мелочи
Записан
qate
Супер
Offline
Сообщений: 1177
Re: Кто какую систему сборки использует?
«
Ответ #19 :
Март 29, 2017, 14:48 »
Цитата: ViTech от Март 29, 2017, 13:49
Скорость сборки больших проектов выше.
за счет чего ?
ведь сборка проекта это сборка каждого файла и в конце линковка - что тут qbs может ускорить ?
Записан
ViTech
Гипер активный житель
Offline
Сообщений: 858
Re: Кто какую систему сборки использует?
«
Ответ #20 :
Март 29, 2017, 15:24 »
Цитата: qate от Март 29, 2017, 14:48
за счет чего ?
ведь сборка проекта это сборка каждого файла и в конце линковка - что тут qbs может ускорить ?
qmake генерит кучу Makefil'ов по которым выполняется сборка. Qbs строит дерево сборки целиком и сам вызывает компиляторы/линкеры и прочее. Лучше отслеживает изменения в структуре проектов и пересобирает необходимый минимум. Немного здесь описано:
Introducing qbs
Fast incremental builds. У меня на большом проекте проверка изменений в qmake могла занимать и минуту, даже если изменений никаких и не было. И так при каждой сборке. На Qbs это же занимало 0 секунд. Ну ладно, 0.5 секунды
.
Записан
Пока сам не сделаешь...
qate
Супер
Offline
Сообщений: 1177
Re: Кто какую систему сборки использует?
«
Ответ #21 :
Март 29, 2017, 15:49 »
Цитата: ViTech от Март 29, 2017, 15:24
qmake генерит кучу Makefil'ов по которым выполняется сборка. Qbs строит дерево сборки целиком и сам вызывает компиляторы/линкеры и прочее. Лучше отслеживает изменения в структуре проектов и пересобирает необходимый минимум. Немного здесь описано:
Introducing qbs
Fast incremental builds. У меня на большом проекте проверка изменений в qmake могла занимать и минуту, даже если изменений никаких и не было. И так при каждой сборке. На Qbs это же занимало 0 секунд. Ну ладно, 0.5 секунды
.
очень странно:
1. qmake генерит один Makefile и ничего не вызывает при сборке, это делает make
2. make пересобирает только измененные фалы, при это qmake вообще не участвует
3. pro файл меняется редко, потому как его qmake парсит меня не напрягает
4. при каждой сборке qmake не участвует, если pro файл не менялся
может мы о разном говорим ?
хотя если проект состоит из "200 libraries, 50 classes per library, 30 lib-internal includes per file and 10 lib-external includes per file" то его наверно я замечу разницу
но такие проекты я еще не создавал )
«
Последнее редактирование: Март 29, 2017, 16:01 от qate
»
Записан
kuzulis
Джедай : наставник для всех
Offline
Сообщений: 2812
Re: Кто какую систему сборки использует?
«
Ответ #22 :
Март 29, 2017, 15:57 »
Цитировать
После перехода на Qbs забыл qmake как страшный сон.
Пока это имеет смысл только для десктопных приложений. Но для дебаженья андройда и embedded linux (ЕМНИП), QBS к сожалению не торт, приходится богомерзкий qmake юзать.
А по всем другим вещам QBS впереди всех перечисленных по удобству, скорости, разруливанию зависимостей и прочее (тут уже все ViTech разъяснил)!
У меня, к примеру, QBS занимается также и деплоем (вызывает windeployqt), созданием инсталляторов (также и deb пакетов), "подписыванием" бинарей приложений/библиотек, добавлением в них RC секций и прочих няшек-плюшек.. И все это в одном проекте! Попробуйте-ка на qmake/CMake это замутить - получите вигвам, и будете долго плеваться!
«
Последнее редактирование: Март 29, 2017, 16:06 от kuzulis
»
Записан
ArchLinux x86_64 / Win10 64 bit
ViTech
Гипер активный житель
Offline
Сообщений: 858
Re: Кто какую систему сборки использует?
«
Ответ #23 :
Март 29, 2017, 16:05 »
Цитата: qate от Март 29, 2017, 15:49
очень странно:
1. qmake генерит один Makefile и ничего не вызывает при сборке, это делает make
2. make пересобирает только измененные фалы, при это qmake вообще не участвует
3. pro файл меняется редко, потому как его qmake парсит меня не напрягает
4. при каждой сборке qmake не участвует, если pro файл не менялся
может мы о разном говорим ?
1. qmake генерит один Makefile для каждого модуля (библиотеки, приложения). В проекте их могут быть десятки.
2. make пересобирает только измененные файлы, но для этого должен зайти в каждый модуль и проверить изменился ли он. Это и отмечают в
Introducing qbs
Fast incremental builds.
3. В проектах со сложной структурой и зависимостями между модулями на qmake надо знатно извратиться, чтобы эти зависимости разрешить. Поэтому парсинг qmake может изрядно напрягать.
4. На большом проекте я уже вникать не стал, кто там участвует: qmake, make или кто-то ещё
. Тормоза по сравнению с Qbs просто громадные.
Я говорю о проекте в котором, допустим, штук 20 библиотек и 10 приложений
.
Записан
Пока сам не сделаешь...
__Heaven__
Джедай : наставник для всех
Offline
Сообщений: 2130
Re: Кто какую систему сборки использует?
«
Ответ #24 :
Март 29, 2017, 16:46 »
Кроме qtcreator кто-нибудь ещё поддерживает qbs?
Записан
kuzulis
Джедай : наставник для всех
Offline
Сообщений: 2812
Re: Кто какую систему сборки использует?
«
Ответ #25 :
Март 29, 2017, 17:24 »
Пока нет, но это не проблема.
Записан
ArchLinux x86_64 / Win10 64 bit
lit-uriy
Джедай : наставник для всех
Offline
Сообщений: 3880
Re: Кто какую систему сборки использует?
«
Ответ #26 :
Март 29, 2017, 17:56 »
Цитата: qate от Март 29, 2017, 14:46
да, так не получится, но это мелочи
Ни чего себе мелочи! Нет возможности собрать проект - нет конечного продукта. Это не мелочи.
Как из этой ситуации выходить?
- Перепахивать чужие модули? Какая при этом версия модуля получится?
- Писать (копипастить) модуль заново и потом постоянно синхронизировать его с оригинальным?
Если ты не одноразовые игрухи под мобилки клепаешь, а пользуешся выверенными модулями, то это огромная проблема.
«
Последнее редактирование: Март 29, 2017, 18:03 от lit-uriy
»
Записан
Юра.
lit-uriy
Джедай : наставник для всех
Offline
Сообщений: 3880
Re: Кто какую систему сборки использует?
«
Ответ #27 :
Март 29, 2017, 18:13 »
Цитата: qate от Март 29, 2017, 15:49
очень странно:
1. qmake генерит один Makefile и ничего не вызывает при сборке, это делает make
- qmake генерит один Makefile
- запускается Make, видит инструкцию в MakeFile - "сделай с помощью qmake Makefile.Debug" и "сделай с помощью qmake Makefile.Release"
- qmake генерит один Makefile.Debug
- qmake генерит один Makefile.Release
При стандартном потходе, когда make вызывается без параметров debug или release, дальше картина выглядит так:
Make заходит в Makefile.Debug и выполняет его инструкции (проверяя изменившиеся файлы), затем Make заходит Makefile.Release и делает тоже самое над теми же файлами (в том числе проверку на изменения).
Т.е. по меньшей мере в 2 раза удлиняя процесс сборки.
Поэтому я инклюдю в свой профайл собственный "стандартный! конфиг и использую явные команды
make debug
и
make release
Если имеются субпроекты то триад make-файлов бутдет на каждый субпроект.
Цитата: qate от Март 29, 2017, 15:49
2. make пересобирает только измененные фалы, при это qmake вообще не участвует
если используешь QSS воткнутый внутрь ресурсов, то никогда не проверяется изменение QSS, единственный способ - прибить соответствующий объектник.
«
Последнее редактирование: Март 29, 2017, 18:27 от lit-uriy
»
Записан
Юра.
lit-uriy
Джедай : наставник для всех
Offline
Сообщений: 3880
Re: Кто какую систему сборки использует?
«
Ответ #28 :
Март 29, 2017, 18:22 »
так что у qmake есть весьма серьёзные проблемы,
но QBS пока напоминает студенческие эксперементы, такие же как и в проекте Оберон (Никлауса Вирта и Юрга Гукнехта).
Т.е. завтра внесут изменения и твой проект станет не понятен QBS-у (много раз сталкивался на чужих проектах, посему приходится держать несколько креаторов (старые не удалять).
Плюс ещё и ты должен вместо прикладной задачи заниматься слежением за блогом разработчиков QBS-а, что бы знать, что поменяли и чего тебя ждёт.
CMake - слишком много телодвижений требуется, чтобы создать проект. Его поддержка в креаторе - ущербная. У меня креатор ещё не разу неасилил создать CMake проект, который бы завёлся сразу - напоминает совавтопром - Доработай напильником, потом поедеш.
Записан
Юра.
Пантер
Administrator
Джедай : наставник для всех
Offline
Сообщений: 5876
Жаждущий знаний
Re: Кто какую систему сборки использует?
«
Ответ #29 :
Март 29, 2017, 18:44 »
Цитата: lit-uriy от Март 29, 2017, 18:22
CMake - слишком много телодвижений требуется, чтобы создать проект. Его поддержка в креаторе - ущербная. У меня креатор ещё не разу неасилил создать CMake проект, который бы завёлся сразу - напоминает совавтопром - Доработай напильником, потом поедеш.
Про какие телодвижения разговор? Я уже лет 8 использую CMake и проблем не знаю.
Записан
1. Qt - Qt Development Frameworks; QT - QuickTime
2. Не используйте в исходниках символы кириллицы!!!
3. Пользуйтесь тегом code при оформлении сообщений.
Страниц:
1
[
2
]
3
4
Вверх
Печать
« предыдущая тема
следующая тема »
Перейти в:
Пожалуйста, выберите назначение:
-----------------------------
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 сферы
=> Говорилка
=> Юмор
=> Объявления
Загружается...