Russian Qt Forum
Ноябрь 24, 2024, 00:36
Добро пожаловать,
Гость
. Пожалуйста,
войдите
или
зарегистрируйтесь
.
Вам не пришло
письмо с кодом активации?
1 час
1 день
1 неделя
1 месяц
Навсегда
Войти
Начало
Форум
WIKI (Вики)
FAQ
Помощь
Поиск
Войти
Регистрация
Russian Qt Forum
>
Forum
>
Qt
>
Общие вопросы
>
Модульная структура Qt4
Страниц: [
1
]
2
Вниз
« предыдущая тема
следующая тема »
Печать
Автор
Тема: Модульная структура Qt4 (Прочитано 11118 раз)
kuzulis
Джедай : наставник для всех
Offline
Сообщений: 2812
Модульная структура Qt4
«
:
Ноябрь 11, 2009, 12:37 »
Доброго всем времени суток!
Как вы (граждане форума прогоргру
) думаете, можно ли сделать Qt4 модульной?
Т.е. имею ввиду, например, чтобы при создании приложений не таскать с собой целые библиотеки Qt - а разбить их на более мелкие по функциональным группам.
т.е. сделать такую возможность на этапе сборки самой библиотеки Qt4 , так, чтобы можно было выбирать между тем как есть сейчас и между вариантом модульной структуры.
не пробовал ли кто обращаться в Нокиа с этим предложением?
ЗЫ: не хочется для простого приложения (аппликухи) таскать еще и громоздкие либы от Qt4
Записан
ArchLinux x86_64 / Win10 64 bit
pastor
Administrator
Джедай : наставник для всех
Offline
Сообщений: 2901
Re: Модульная структура Qt4
«
Ответ #1 :
Ноябрь 11, 2009, 12:39 »
Так Qt4 и есть модульная. Зачем таскать все библиотеки, тоскай только то что нужно для работы приложения.
Записан
Integrated Computer Solutions, Inc. (ICS)
http://www.ics.com/
kuzulis
Джедай : наставник для всех
Offline
Сообщений: 2812
Re: Модульная структура Qt4
«
Ответ #2 :
Ноябрь 11, 2009, 13:14 »
Цитировать
Так Qt4 и есть модульная. Зачем таскать все библиотеки, тоскай только то что нужно для работы приложения.
Дык размер большой !!!
Например
QtGui4.dll
около 11.3Мб !
А вот если к примеру разбить его на еще более мелкие либки:
- QtGuiBase - мелкая обязательная либка, которая предоставляет функционал от которого зависят все остальные либки в ГУИ
- QtGuiLayouts
- QtGuiSpacers
- QtGuiButtons
- QtGuiItemViews
- QtGuiItemWidgets
- QtGuiContainers
...
...
и т.п.
Аналогично и с
QtNetwork4.dll
:
- QtNetworkBase
- QtNetworkTCPSockets
- QtNetworkUDPSockets
- QtNetworkTCPServers
...
...
и т.п.
Идея думаю ясна
Записан
ArchLinux x86_64 / Win10 64 bit
lit-uriy
Джедай : наставник для всех
Offline
Сообщений: 3880
Re: Модульная структура Qt4
«
Ответ #3 :
Ноябрь 11, 2009, 13:17 »
Есть возможность собрать Qt только из тех частей которые тебе нужны (
тык
)
Но тут нужно пересобирать Qt.
Другой вариант инклюдить нужные файлы, т.е. так, как это сделано в qmake (он не зависит от библиотек Qt)
Записан
Юра.
kuzulis
Джедай : наставник для всех
Offline
Сообщений: 2812
Re: Модульная структура Qt4
«
Ответ #4 :
Ноябрь 11, 2009, 13:42 »
Цитировать
Есть возможность собрать Qt только из тех частей которые тебе нужны (тык)
Но тут нужно пересобирать Qt.
аа, всё, вспомнил тему
Цитировать
Другой вариант инклюдить нужные файлы, т.е. так, как это сделано в qmake (он не зависит от библиотек Qt)
Ок, буду смотреть
Спс
Записан
ArchLinux x86_64 / Win10 64 bit
pastor
Administrator
Джедай : наставник для всех
Offline
Сообщений: 2901
Re: Модульная структура Qt4
«
Ответ #5 :
Ноябрь 11, 2009, 16:46 »
Цитата: kuzulis от Ноябрь 11, 2009, 13:14
Дык размер большой !!!
Пожми UPX-ом
Записан
Integrated Computer Solutions, Inc. (ICS)
http://www.ics.com/
crackedmind
Гость
Re: Модульная структура Qt4
«
Ответ #6 :
Ноябрь 17, 2009, 21:19 »
Цитата: kuzulis от Ноябрь 11, 2009, 13:14
Цитировать
Так Qt4 и есть модульная. Зачем таскать все библиотеки, тоскай только то что нужно для работы приложения.
Дык размер большой !!!
Например
QtGui4.dll
около 11.3Мб !
А вот если к примеру разбить его на еще более мелкие либки:
- QtGuiBase - мелкая обязательная либка, которая предоставляет функционал от которого зависят все остальные либки в ГУИ
- QtGuiLayouts
- QtGuiSpacers
- QtGuiButtons
- QtGuiItemViews
- QtGuiItemWidgets
- QtGuiContainers
...
...
и т.п.
Аналогично и с
QtNetwork4.dll
:
- QtNetworkBase
- QtNetworkTCPSockets
- QtNetworkUDPSockets
- QtNetworkTCPServers
...
...
и т.п.
Идея думаю ясна
Если Qt и разобьют на более мелкие модули, то только не раньше Qt 5
Ибо бинарная совместимость...
А у меня QtGui4.dll - 7.2 мб (Qt 4.6) и 6.7 мб для 4.5.3
Попробуйте MS VC++ Express Edition, а не mingw
Цитата: pastor от Ноябрь 11, 2009, 16:46
Цитата: kuzulis от Ноябрь 11, 2009, 13:14
Дык размер большой !!!
Пожми UPX-ом
Это не панацея
Записан
zenden
Гость
Re: Модульная структура Qt4
«
Ответ #7 :
Ноябрь 18, 2009, 00:13 »
Не пойму, а что, компилятор не в состоянии выкинуть из сборки неиспользуемые классы? (я говорю о статической линковке)
Почему программа весит стольо непозволительно много при статической сборке?
«
Последнее редактирование: Ноябрь 18, 2009, 00:16 от zenden
»
Записан
kuzulis
Джедай : наставник для всех
Offline
Сообщений: 2812
Re: Модульная структура Qt4
«
Ответ #8 :
Ноябрь 18, 2009, 08:22 »
Цитировать
Если Qt и разобьют на более мелкие модули, то только не раньше Qt 5 Улыбающийся Ибо бинарная совместимость...
Так я имею ввиду
дополнительную возможность
собрать Qt4 динамически с разбитием на мелние шаред либы. т.е. по умолчанию - пусть есть как есть, но чтобы ввели дополнительный ключь сборки, при котором соберется иначе... Неужели в этом такая проблема?
Цитировать
Не пойму, а что, компилятор не в состоянии выкинуть из сборки неиспользуемые классы? (я говорю о статической линковке)
Почему программа весит стольо непозволительно много при статической сборке?
Хз.
Записан
ArchLinux x86_64 / Win10 64 bit
Igors
Джедай : наставник для всех
Offline
Сообщений: 11445
Re: Модульная структура Qt4
«
Ответ #9 :
Ноябрь 18, 2009, 15:02 »
Цитата: kuzulis от Ноябрь 18, 2009, 08:22
Цитировать
Не пойму, а что, компилятор не в состоянии выкинуть из сборки неиспользуемые классы? (я говорю о статической линковке)
Почему программа весит стольо непозволительно много при статической сборке?
Хз.
А что "Ха"? Правда это задача линкера но суть та же, почему нет?
Записан
lit-uriy
Джедай : наставник для всех
Offline
Сообщений: 3880
Re: Модульная структура Qt4
«
Ответ #10 :
Ноябрь 18, 2009, 15:32 »
Igors, не "Ха", а "Хз" - "Хто бы знал"
Записан
Юра.
Igors
Джедай : наставник для всех
Offline
Сообщений: 11445
Re: Модульная структура Qt4
«
Ответ #11 :
Ноябрь 18, 2009, 15:52 »
Цитата: lit-uriy от Ноябрь 18, 2009, 15:32
Igors, не "Ха", а "Хз" - "Хто бы знал"
Пардон, шрифт мелкий, ошибся
Записан
lit-uriy
Джедай : наставник для всех
Offline
Сообщений: 3880
Re: Модульная структура Qt4
«
Ответ #12 :
Ноябрь 18, 2009, 16:15 »
к стати вопрос действительно интересный, "что мешает линкеру", либо "как ему объяснить", чтобы он оставил в бинаре (при статической сборке) только необходимые вещи?
Записан
Юра.
kuzulis
Джедай : наставник для всех
Offline
Сообщений: 2812
Re: Модульная структура Qt4
«
Ответ #13 :
Ноябрь 18, 2009, 16:32 »
По моему - никак не получится, если только - при создании аппликаций - подключать не статические библиотеки Qt4 - а исходники (классы) этой самой Qt4.
Тогда подключится то, что нужно и ничего более.. ИМХО ))
Наверное потому еще, что линкуются то объектники целиком... т.е. единственный выход - ИМХО делать кучу маленьких объектников и выбирать при линковке нужные из них... При этом получается то ради чего я создал тему
«
Последнее редактирование: Ноябрь 18, 2009, 16:36 от kuzulis
»
Записан
ArchLinux x86_64 / Win10 64 bit
Igors
Джедай : наставник для всех
Offline
Сообщений: 11445
Re: Модульная структура Qt4
«
Ответ #14 :
Ноябрь 18, 2009, 16:36 »
Цитата: lit-uriy от Ноябрь 18, 2009, 16:15
к стати вопрос действительно интересный, "что мешает линкеру", либо "как ему объяснить", чтобы он оставил в бинаре (при статической сборке) только необходимые вещи?
Я на X-Code (тот же gcc 4) Qt библиотеки динамические (просто др. не нужно). Но вообще я всегда для релиза включаю опцию линкера DEAD_CODE_STRIPPING, и размер становится намного меньше
Записан
Страниц: [
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 сферы
=> Говорилка
=> Юмор
=> Объявления
Загружается...