Название: Зачем нужна статическая сборка? Отправлено: Blackwanderer от Апрель 17, 2011, 07:01 Почитал я форум, и обратил внимание, что каждый второй хочет линковать библиотеки непременно статически. Может я чего в этой жизни не понимаю, но я не вижу ни одного реального преимущества статики, зато проблем с компиляцией и сборкой over 9000. Так в чем смысл?
Название: Re: Зачем нужна статическая сборка? Отправлено: merke от Апрель 17, 2011, 07:20 Ну одно из преимуществ это то что тебе не придется с собой таскать кучу библиотек кутишных, они будут уже вшиты в экзешник.
Название: Re: Зачем нужна статическая сборка? Отправлено: Igors от Апрель 17, 2011, 07:23 Ну не каждый второй, но желание вполне понятно. На первый взгляд - слинковал и ни от чего не зависишь, работает всегда "и никаких гвоздей!". А с динамическими так не получается, они должны быть в наличии, да правильной версии, да надо заботиться о path. Хотя по мере роста опыта static становится меньше а dynamic больше :)
Название: Re: Зачем нужна статическая сборка? Отправлено: Blackwanderer от Апрель 17, 2011, 07:34 Ну одно из преимуществ это то что тебе не придется с собой таскать кучу библиотек кутишных, они будут уже вшиты в экзешник. Не понял. А в чем принципиальная разница?Ну не каждый второй, но желание вполне понятно. На первый взгляд - слинковал и ни от чего не зависишь, работает всегда "и никаких гвоздей!". А с динамическими так не получается, они должны быть в наличии, да правильной версии, да надо заботиться о path. Хотя по мере роста опыта static становится меньше а dynamic больше :) Не, оно было бы резонно если бы действительно Цитировать работает всегда "и никаких гвоздей!" . Но ведь это несколько часов компилить библиотеку, да еще не ошибиться с ключами, да потом начинаются проблемы типа "оно все равно в dll лезет", "а оно теперь не линкеутся", "а фича X перестала работать". ИМХО закинуть все dll в папочку к exe или дописать строчку в path куда быстрее и проще.Название: Re: Зачем нужна статическая сборка? Отправлено: Mikhail от Апрель 17, 2011, 09:31 Зачем задавать вопрос если есть большое желание возражать ответившим?
Все перечисленные вами вопросы это вопросы тех разработчиков которые пытаются разобраться. И в итоге разбираются. А попробуте объяснить пользователю, что есть какие то пути и их где то надо прописывать. Значит или делайте полный инсталятор для программ с DLL или собирйте их статически. А вообще достаточно оин раз собрать static и dynamic для версии Qt и собирать программы в нужной конфигурации. Да так и построен принцип сборки с исползованием QtCreator. Название: Re: Зачем нужна статическая сборка? Отправлено: Blackwanderer от Апрель 17, 2011, 10:06 Зачем задавать вопрос если есть большое желание возражать ответившим? Если бы моей целью было бы разобраться, я бы создал тему в более подходящем разделе :) Здесь скорее желание подискутировать :)Все перечисленные вами вопросы это вопросы тех разработчиков которые пытаются разобраться. И в итоге разбираются. Я вполне понимаю в чем смысл статической сборки. Я не понимаю зачем. Почему так много людей хотят работать со статикой? Все причины, которые приводятся (за исключением клинической ситуации с заказчиком а-ля "вот хочу одну экзешку и не Название: Re: Зачем нужна статическая сборка? Отправлено: Mikhail от Апрель 17, 2011, 12:11 Не понял какие у там особые трудозатраты при работе со статикой.
Все работает без проблем, в том числе и статические плагины. Название: Re: Зачем нужна статическая сборка? Отправлено: Blackwanderer от Апрель 17, 2011, 17:29 Не понял какие у там особые трудозатраты при работе со статикой. Как минимум компиляция этой самой статики. На моей машине (два ядра по два гига) это занимает 3-4 часа, в течение которых больше ничем заниматься толком нельзя.Название: Re: Зачем нужна статическая сборка? Отправлено: Mikhail от Апрель 17, 2011, 17:37 У меня 1 ядро и 1 гиг компиляция не более 2 часов.
А можно и на ночь запустить. Спать то надо иногда. Название: Re: Зачем нужна статическая сборка? Отправлено: ufna от Апрель 17, 2011, 17:39 компиляция с верными ключами - у меня лично проходит очень быстро :)
а так: а) статика на мобильные платформы - это самое верное решение - так быстрее грузится и работает, особенно винце б) статика это "все в одном", и не беспокоишься о версиях библиотек Qt - так проще апдейтить приложение в) это может быть портейбл приложение в "одном экзешнике", без инсталляторов, архивов, папок и прочего г) в статику попадает только нужное - меньше размер в целом, чем с .dll Название: Re: Зачем нужна статическая сборка? Отправлено: Blackwanderer от Апрель 17, 2011, 18:06 У меня 1 ядро и 1 гиг компиляция не более 2 часов. Это смотря что вы компилируете. Я - полный набор библиотек, включая WebKit (debug + release). Собственно WebKit и съедает большую часть времени компиляции. И ночью я сплю :P, а вот шум компьютера мне мешает. Так что я никогда не оставляю его на ночь.А можно и на ночь запустить. Спать то надо иногда. а) статика на мобильные платформы - это самое верное решение - так быстрее грузится и работает, особенно винце Никогда не работал с мобильными платформами, но звучит вполне правдоподобно. Пожалуй, первый реальный плюс статики.г) в статику попадает только нужное - меньше размер в целом, чем с .dll А можно цифры, для примера? То что меньше размер - это понятно, интересно на сколько: на проценты, в разы, на порядки?Название: Re: Зачем нужна статическая сборка? Отправлено: ufna от Апрель 17, 2011, 19:02 ну вебкит это да, подольше. Но все равно - поставил и радуйся жизни, просто комп помощнее :)
Цитировать А можно цифры, для примера? То что меньше размер - это понятно, интересно на сколько: на проценты, в разы, на порядки? Сборка в статике: 4.1 мб экщешник Сборка в динамике: 1.2 мб экзешник QtGui - 9.45 QtCore - 2.43 Итого разница более чем в три раза. Все ресурсы внешние, т.е. только код в экзешнике. Никаких спец. тенхик сжатия не использовано (с ними до 2.5-3Мб сжимается без проблем). Название: Re: Зачем нужна статическая сборка? Отправлено: Akon от Апрель 17, 2011, 19:15 Цитировать Никогда не работал с мобильными платформами, но звучит вполне правдоподобно. Пожалуй, первый реальный плюс статики. У статики, естественно, есть плюсы. Из, может быть, неочевидных: в любом приложении GUI Windows, использующем динамическую Qt, также используется и статическая служебная библиотека из состава Qt. Название: Re: Зачем нужна статическая сборка? Отправлено: gogi от Апрель 18, 2011, 10:19 К слову сказать, для статической линковки закрытых программ нужно покупать линецзию на Qt.
Название: Re: Зачем нужна статическая сборка? Отправлено: lit-uriy от Апрель 18, 2011, 14:06 >>К слову сказать, для статической линковки закрытых программ нужно покупать линецзию на Qt.
НЕТ, ищи по форуму, обсуждалось Название: Re: Зачем нужна статическая сборка? Отправлено: ufna от Апрель 18, 2011, 17:47 >>К слову сказать, для статической линковки закрытых программ нужно покупать линецзию на Qt. НЕТ, ищи по форуму, обсуждалось +1 Эта "легенда" уж сколько лет как ошибочна.. |