Russian Qt Forum
Ноябрь 22, 2024, 22:37
Добро пожаловать,
Гость
. Пожалуйста,
войдите
или
зарегистрируйтесь
.
Вам не пришло
письмо с кодом активации?
1 час
1 день
1 неделя
1 месяц
Навсегда
Войти
Начало
Форум
WIKI (Вики)
FAQ
Помощь
Поиск
Войти
Регистрация
Russian Qt Forum
>
Forum
>
Разное
>
Говорилка
>
Зачем нужна статическая сборка?
Страниц: [
1
]
2
Вниз
« предыдущая тема
следующая тема »
Печать
Автор
Тема: Зачем нужна статическая сборка? (Прочитано 11857 раз)
Blackwanderer
Гость
Зачем нужна статическая сборка?
«
:
Апрель 17, 2011, 07:01 »
Почитал я форум, и обратил внимание, что каждый второй хочет линковать библиотеки непременно статически. Может я чего в этой жизни не понимаю, но я не вижу ни одного реального преимущества статики, зато проблем с компиляцией и сборкой over 9000. Так в чем смысл?
Записан
merke
Гость
Re: Зачем нужна статическая сборка?
«
Ответ #1 :
Апрель 17, 2011, 07:20 »
Ну одно из преимуществ это то что тебе не придется с собой таскать кучу библиотек кутишных, они будут уже вшиты в экзешник.
Записан
Igors
Джедай : наставник для всех
Offline
Сообщений: 11445
Re: Зачем нужна статическая сборка?
«
Ответ #2 :
Апрель 17, 2011, 07:23 »
Ну не каждый второй, но желание вполне понятно. На первый взгляд - слинковал и ни от чего не зависишь, работает всегда "и никаких гвоздей!". А с динамическими так не получается, они должны быть в наличии, да правильной версии, да надо заботиться о path. Хотя по мере роста опыта static становится меньше а dynamic больше
Записан
Blackwanderer
Гость
Re: Зачем нужна статическая сборка?
«
Ответ #3 :
Апрель 17, 2011, 07:34 »
Цитата: Александр от Апрель 17, 2011, 07:20
Ну одно из преимуществ это то что тебе не придется с собой таскать кучу библиотек кутишных, они будут уже вшиты в экзешник.
Не понял. А в чем принципиальная разница?
Цитата: Igors от Апрель 17, 2011, 07:23
Ну не каждый второй, но желание вполне понятно. На первый взгляд - слинковал и ни от чего не зависишь, работает всегда "и никаких гвоздей!". А с динамическими так не получается, они должны быть в наличии, да правильной версии, да надо заботиться о path. Хотя по мере роста опыта static становится меньше а dynamic больше
Не, оно было бы резонно если бы действительно
Цитировать
работает всегда "и никаких гвоздей!"
. Но ведь это несколько часов компилить библиотеку, да еще не ошибиться с ключами, да потом начинаются проблемы типа "оно все равно в dll лезет", "а оно теперь не линкеутся", "а фича X перестала работать". ИМХО закинуть все dll в папочку к exe или дописать строчку в path куда быстрее и проще.
Записан
Mikhail
Программист
Offline
Сообщений: 587
Re: Зачем нужна статическая сборка?
«
Ответ #4 :
Апрель 17, 2011, 09:31 »
Зачем задавать вопрос если есть большое желание возражать ответившим?
Все перечисленные вами вопросы это вопросы тех разработчиков которые пытаются разобраться. И в итоге разбираются.
А попробуте объяснить пользователю, что есть какие то пути и их где то надо прописывать.
Значит или делайте полный инсталятор для программ с DLL или собирйте их статически.
А вообще достаточно оин раз собрать static и dynamic для версии Qt и собирать программы в нужной конфигурации.
Да так и построен принцип сборки с исползованием QtCreator.
Записан
Blackwanderer
Гость
Re: Зачем нужна статическая сборка?
«
Ответ #5 :
Апрель 17, 2011, 10:06 »
Цитата: Mikhail от Апрель 17, 2011, 09:31
Зачем задавать вопрос если есть большое желание возражать ответившим?
Все перечисленные вами вопросы это вопросы тех разработчиков которые пытаются разобраться. И в итоге разбираются.
Если бы моей целью было бы разобраться, я бы создал тему в более подходящем разделе
Здесь скорее желание подискутировать
Я вполне понимаю в чем смысл статической сборки. Я не понимаю зачем. Почему так много людей хотят работать со статикой? Все причины, которые приводятся (за исключением клинической ситуации с заказчиком а-ля "вот хочу одну экзешку и не
еб
волнует") выглядят высосанными из пальца и абсолютно не оправдывающими трудозатраты при работе со статикой.
Записан
Mikhail
Программист
Offline
Сообщений: 587
Re: Зачем нужна статическая сборка?
«
Ответ #6 :
Апрель 17, 2011, 12:11 »
Не понял какие у там особые трудозатраты при работе со статикой.
Все работает без проблем, в том числе и статические плагины.
Записан
Blackwanderer
Гость
Re: Зачем нужна статическая сборка?
«
Ответ #7 :
Апрель 17, 2011, 17:29 »
Цитата: Mikhail от Апрель 17, 2011, 12:11
Не понял какие у там особые трудозатраты при работе со статикой.
Как минимум компиляция этой самой статики. На моей машине (два ядра по два гига) это занимает 3-4 часа, в течение которых больше ничем заниматься толком нельзя.
Записан
Mikhail
Программист
Offline
Сообщений: 587
Re: Зачем нужна статическая сборка?
«
Ответ #8 :
Апрель 17, 2011, 17:37 »
У меня 1 ядро и 1 гиг компиляция не более 2 часов.
А можно и на ночь запустить. Спать то надо иногда.
Записан
ufna
Гость
Re: Зачем нужна статическая сборка?
«
Ответ #9 :
Апрель 17, 2011, 17:39 »
компиляция с верными ключами - у меня лично проходит очень быстро
а так:
а) статика на мобильные платформы - это самое верное решение - так быстрее грузится и работает, особенно винце
б) статика это "все в одном", и не беспокоишься о версиях библиотек Qt - так проще апдейтить приложение
в) это может быть портейбл приложение в "одном экзешнике", без инсталляторов, архивов, папок и прочего
г) в статику попадает только нужное - меньше размер в целом, чем с .dll
Записан
Blackwanderer
Гость
Re: Зачем нужна статическая сборка?
«
Ответ #10 :
Апрель 17, 2011, 18:06 »
Цитата: Mikhail от Апрель 17, 2011, 17:37
У меня 1 ядро и 1 гиг компиляция не более 2 часов.
А можно и на ночь запустить. Спать то надо иногда.
Это смотря что вы компилируете. Я - полный набор библиотек, включая WebKit (debug + release). Собственно WebKit и съедает большую часть времени компиляции. И ночью я сплю
, а вот шум компьютера мне мешает. Так что я никогда не оставляю его на ночь.
Цитата: ufna от Апрель 17, 2011, 17:39
а) статика на мобильные платформы - это самое верное решение - так быстрее грузится и работает, особенно винце
Никогда не работал с мобильными платформами, но звучит вполне правдоподобно. Пожалуй, первый реальный плюс статики.
Цитата: ufna от Апрель 17, 2011, 17:39
г) в статику попадает только нужное - меньше размер в целом, чем с .dll
А можно цифры, для примера? То что меньше размер - это понятно, интересно на сколько: на проценты, в разы, на порядки?
Записан
ufna
Гость
Re: Зачем нужна статическая сборка?
«
Ответ #11 :
Апрель 17, 2011, 19:02 »
ну вебкит это да, подольше. Но все равно - поставил и радуйся жизни, просто комп помощнее
Цитировать
А можно цифры, для примера? То что меньше размер - это понятно, интересно на сколько: на проценты, в разы, на порядки?
Сборка в статике:
4.1 мб экщешник
Сборка в динамике:
1.2 мб экзешник
QtGui - 9.45
QtCore - 2.43
Итого разница более чем в три раза. Все ресурсы внешние, т.е. только код в экзешнике. Никаких спец. тенхик сжатия не использовано (с ними до 2.5-3Мб сжимается без проблем).
Записан
Akon
Гость
Re: Зачем нужна статическая сборка?
«
Ответ #12 :
Апрель 17, 2011, 19:15 »
Цитировать
Никогда не работал с мобильными платформами, но звучит вполне правдоподобно. Пожалуй, первый реальный плюс статики.
У статики, естественно, есть плюсы. Из, может быть, неочевидных: в любом приложении GUI Windows, использующем динамическую Qt, также используется и статическая служебная библиотека из состава Qt.
Записан
gogi
Гость
Re: Зачем нужна статическая сборка?
«
Ответ #13 :
Апрель 18, 2011, 10:19 »
К слову сказать, для статической линковки закрытых программ нужно покупать линецзию на Qt.
Записан
lit-uriy
Джедай : наставник для всех
Offline
Сообщений: 3880
Re: Зачем нужна статическая сборка?
«
Ответ #14 :
Апрель 18, 2011, 14:06 »
>>К слову сказать, для статической линковки закрытых программ нужно покупать линецзию на Qt.
НЕТ, ищи по форуму, обсуждалось
Записан
Юра.
Страниц: [
1
]
2
Вверх
Печать
« предыдущая тема
следующая тема »
Перейти в:
Пожалуйста, выберите назначение:
-----------------------------
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 сферы
=> Говорилка
=> Юмор
=> Объявления
Загружается...