Russian Qt Forum
Апреля 11, 2025, 10:22
Добро пожаловать,
Гость
. Пожалуйста,
войдите
или
зарегистрируйтесь
.
Вам не пришло
письмо с кодом активации?
1 час
1 день
1 неделя
1 месяц
Навсегда
Войти
Начало
Форум
WIKI (Вики)
FAQ
Помощь
Поиск
Войти
Регистрация
Russian Qt Forum
>
Forum
>
Qt
>
Общие вопросы
>
Насколько нужна сборка приложения "без зависимостей"
Голосование
Вопрос:
Насколько нужна сборка приложения "без зависимостей"
Очень нужна
3 (37.5%)
Нужна, да не получается
1 (12.5%)
Не нужна, должен быть инсталл
2 (25%)
Ваш вариант
2 (25%)
Всего голосов: 8
Страниц: [
1
]
2
3
Вниз
« предыдущая тема
следующая тема »
Печать
Автор
Тема: Насколько нужна сборка приложения "без зависимостей" (Прочитано 20677 раз)
Igors
Джедай : наставник для всех
Offline
Сообщений: 11445
Насколько нужна сборка приложения "без зависимостей"
«
:
Июля 19, 2016, 12:20 »
Добрый день
"Без зависимостей" означает что никакой инсталлятор не требуется, пользователь может свободно копировать с одной машины на другую. Копироваться может файл или папка/мамка, т.е, линковать статически необязательно.
Записан
kai666_73
Крякер
Offline
Сообщений: 319
Re: Насколько нужна сборка приложения "без зависимостей"
«
Ответ #1 :
Июля 19, 2016, 13:35 »
Windows: однозначно, проще (и IMHO правильней) без зависимостей, скопировал папку и все. Install также не возбраняется, но тоже без зависимостей, то есть все либы с собой.
*NIX: install only - репозитарий, deb, rpm...
Записан
Racheengel
Джедай : наставник для всех
Offline
Сообщений: 2679
Я работал с дискетам 5.25 :(
Re: Насколько нужна сборка приложения "без зависимостей"
«
Ответ #2 :
Июля 19, 2016, 13:47 »
Стараемся собирать под винду без зависимостей, насколько это возможно.
Обычно даже работает
Записан
What is the 11 in the C++11? It’s the number of feet they glued to C++ trying to obtain a better octopus.
COVID не волк, в лес не уйдёт
Bepec
Гость
Re: Насколько нужна сборка приложения "без зависимостей"
«
Ответ #3 :
Июля 19, 2016, 14:10 »
Хочется, но зачастую не нужна
Хотя все итак понимают минусы вроде размера => проблем с обновлением.
Записан
Racheengel
Джедай : наставник для всех
Offline
Сообщений: 2679
Я работал с дискетам 5.25 :(
Re: Насколько нужна сборка приложения "без зависимостей"
«
Ответ #4 :
Июля 19, 2016, 14:43 »
Цитата: Bepec от Июля 19, 2016, 14:10
Хотя все итак понимают минусы вроде размера => проблем с обновлением.
Что Вы иметь в виду?
Записан
What is the 11 in the C++11? It’s the number of feet they glued to C++ trying to obtain a better octopus.
COVID не волк, в лес не уйдёт
kambala
Джедай : наставник для всех
Offline
Сообщений: 4747
Re: Насколько нужна сборка приложения "без зависимостей"
«
Ответ #5 :
Июля 19, 2016, 15:31 »
думаю, он о статической линковке
Записан
Изучением C++ вымощена дорога в Qt.
UTF-8 has been around since 1993 and Unicode 2.0 since 1996; if you have created any 8-bit character content since 1996 in anything other than UTF-8, then I hate you. © Matt Gallagher
Igors
Джедай : наставник для всех
Offline
Сообщений: 11445
Re: Насколько нужна сборка приложения "без зависимостей"
«
Ответ #6 :
Июля 19, 2016, 16:14 »
Цитата: kai666_73 от Июля 19, 2016, 13:35
Windows: однозначно, проще (и IMHO правильней) без зависимостей, скопировал папку и все.
Ну что проще - это точно. Но правильней ли? Ведь dll-ки в папке будут грузиться только для данного приложения. Др словами если есть N папок с одинаковыми dll (и приложения из них запущены)- в памяти будет N копий всех dll
Записан
Bepec
Гость
Re: Насколько нужна сборка приложения "без зависимостей"
«
Ответ #7 :
Июля 19, 2016, 16:32 »
Таки да, я о статической линковке.
Ведь вроде без зависимостей - это как раз статика. а динамическая линковка и есть с зависимостями.
to Igors
Вот когда вы сделаете dll-ку в 500 мб, это возможно будет вызывать проблемы. А пока их размер < 50 мб это несущественно. К тому же динамика даёт возможность иметь на компьюторе много версий одних библиотек и без путаницы.
Хотя конечно можно было бы сделать менеджера dll-лок, который бы регистрировал версию/размер и прочие признаки и по которым отдавал бы каждому приложению запрашиваемые dll-ки, но это требует разработки стандарта
Записан
kai666_73
Крякер
Offline
Сообщений: 319
Re: Насколько нужна сборка приложения "без зависимостей"
«
Ответ #8 :
Июля 19, 2016, 16:52 »
Цитата: Igors от Июля 19, 2016, 16:14
Цитата: kai666_73 от Июля 19, 2016, 13:35
Windows: однозначно, проще (и IMHO правильней) без зависимостей, скопировал папку и все.
Ну что проще - это точно. Но правильней ли? Ведь dll-ки в папке будут грузиться только для данного приложения. Др словами если есть N папок с одинаковыми dll (и приложения из них запущены)- в памяти будет N копий всех dll
Такова плата за простоту. Вот представьте что будет если в систему установить несколько программ, каждая из которых использует Qt-либы, причем разные (64/32/мингв/mcvcXXXX)
В случае N папок с одинаковыми dll... Был у нас такой программный комплекс - порядка 60-и екзешников и 200-т библиотек; и был к этому добру инсталлер, которым никто не пользовался, а тупо все копировали в одну папку.
К чему это я... а к тому, что если библиотеки сторонние, то лучше подстраховаться и подсунуть в папку запуска именно те с которыми производилась сборка. Если же библиотеки свои, то за каким х-м дублировать их в N папок?
Записан
ssoft
Программист
Offline
Сообщений: 584
Re: Насколько нужна сборка приложения "без зависимостей"
«
Ответ #9 :
Июля 19, 2016, 17:11 »
Смотря какой софт пишется.
Если это единственный процесс, например, десктоп приложение, мобильный сервис и т.п. - статическая линковка может быть и оправдана.
Если у вас распределенная система с десятками (сотнями/тысячами) сложных процессов, то ИМХО однозначно динамическая линковка.
На счет наличия инсталлятора - то лучше иго иметь, чем не иметь. Можно конечно и целую папку/мамку копировать, но бывает нужно какой-нибудь скрипт запустить, чтобы рабочее окружение для приложения сформировать, чтобы нужные версии библиотек использовались или еще чего. Кроме того, инсталлятор позволяет следить за обновлением версий, конвертацией форматов данных и т.п.
Записан
qate
Супер
Offline
Сообщений: 1177
Re: Насколько нужна сборка приложения "без зависимостей"
«
Ответ #10 :
Июля 19, 2016, 23:19 »
Цитата: ssoft от Июля 19, 2016, 17:11
Если это единственный процесс, например, десктоп приложение, мобильный сервис и т.п. - статическая линковка может быть и оправдана.
статику неудобно обновлять - большой размер
Записан
vipet
Бывалый
Offline
Сообщений: 452
Re: Насколько нужна сборка приложения "без зависимостей"
«
Ответ #11 :
Июля 20, 2016, 00:03 »
Цитата: qate от Июля 19, 2016, 23:19
Цитата: ssoft от Июля 19, 2016, 17:11
Если это единственный процесс, например, десктоп приложение, мобильный сервис и т.п. - статическая линковка может быть и оправдана.
статику неудобно обновлять - большой размер
я считаю статическая сборка предпочтительнее динамической в большинстве случаев. Инсталлятор в разы меньше весит. Обновлять - так все равно Qt раз в 3 месяца обновляется, дллки новые. Если же есть несколько исполняемых файлов у продукта, то тогда, конечно, размер статики меньше динамики не будет. Но за статическую сборку надо платить (в прямом смысле).
Записан
Igors
Джедай : наставник для всех
Offline
Сообщений: 11445
Re: Насколько нужна сборка приложения "без зависимостей"
«
Ответ #12 :
Июля 20, 2016, 10:13 »
Цитата: kai666_73 от Июля 19, 2016, 16:52
Если же библиотеки свои, то за каким х-м дублировать их в N папок?
Так часто получается если приложение что-то считает в течение длительного/ощутимого времени. Юзер может открыть вторую копию приложения и запустить др расчеты, это нормально
Цитата: vipet от Июля 20, 2016, 00:03
я считаю статическая сборка предпочтительнее динамической в большинстве случаев. Инсталлятор в разы меньше весит.
А как тогда с плагинами приложения (если сборка статическая)? И что тогда делает инсталл?
Записан
Bepec
Гость
Re: Насколько нужна сборка приложения "без зависимостей"
«
Ответ #13 :
Июля 20, 2016, 11:36 »
Инсталл подчищает хвосты. А то сейчас пошли приложения, напакостят в системе/реестре/папках пользователя, удалятся и оставляют свой мусор
Записан
kai666_73
Крякер
Offline
Сообщений: 319
Re: Насколько нужна сборка приложения "без зависимостей"
«
Ответ #14 :
Июля 20, 2016, 11:47 »
Цитата: Igors от Июля 20, 2016, 10:13
Цитата: kai666_73 от Июля 19, 2016, 16:52
Если же библиотеки свои, то за каким х-м дублировать их в N папок?
Так часто получается если приложение что-то считает в течение длительного/ощутимого времени. Юзер может открыть вторую копию приложения и запустить др расчеты, это нормально
Что мешает юзеру запустить вторую копию приложения из той же папки?
Записан
Страниц: [
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 сферы
=> Говорилка
=> Юмор
=> Объявления
Загружается...