Russian Qt Forum
Ноябрь 24, 2024, 16:42
Добро пожаловать,
Гость
. Пожалуйста,
войдите
или
зарегистрируйтесь
.
Вам не пришло
письмо с кодом активации?
1 час
1 день
1 неделя
1 месяц
Навсегда
Войти
Начало
Форум
WIKI (Вики)
FAQ
Помощь
Поиск
Войти
Регистрация
Russian Qt Forum
>
Forum
>
Qt
>
Общие вопросы
>
Размер библиотек Qt
Страниц: [
1
]
2
Вниз
« предыдущая тема
следующая тема »
Печать
Автор
Тема: Размер библиотек Qt (Прочитано 13240 раз)
quark
Гость
Размер библиотек Qt
«
:
Февраль 19, 2010, 22:15 »
Библиотеки Qt весят довольно много: QtCore4.dll - 2,7 Mb, QtGui4.dll - 10,4 Mb.
Мне нужно как можно сильнее уменьшить общий размер приложения вместе с его библиотеками. Можно ли это как-то сделать? Например, выбросить из этих dll'ок неиспользуемую мной функциональность. Чтобы было в пределах объема дискеты.
Записан
BRE
Гость
Re: Размер библиотек Qt
«
Ответ #1 :
Февраль 19, 2010, 22:23 »
Цитата: quark от Февраль 19, 2010, 22:15
Библиотеки Qt весят довольно много: QtCore4.dll - 2,7 Mb, QtGui4.dll - 10,4 Mb.
Мне нужно как можно сильнее уменьшить общий размер приложения вместе с его библиотеками. Можно ли это как-то сделать? Например, выбросить из этих dll'ок неиспользуемую мной функциональность. Чтобы было в пределах объема дискеты.
Можно попробовать собрать статически, но кажется мне что при использовании GUI она все равно на дискету не поместиться.
[off]Неужели где-то еще дискетами пользуются?
[/off]
Записан
Sancho_s_rancho
Гость
Re: Размер библиотек Qt
«
Ответ #2 :
Февраль 19, 2010, 22:35 »
Эта тема поднималась уже много раз.
Соберите куте с оптимизацией -Os(ключ оптимизации по размеру для компилятора mingw32 )
На этапе configure указать ключ -no-exceptions (если вы исключениями не пользуетесь). Использование данного ключа уменьшит размер файлов на 15-20%. Для уменьшения размера исполняемых файлов и разделяемых библиотек может быть использован упаковщик исполняемых файлов UPX.
Но может вы просто неправильно выбрали инструменты? Подумайте о fltk или вообще о связке языка C с прямым вызовом api-шных функций ОС.
Записан
quark
Гость
Re: Размер библиотек Qt
«
Ответ #3 :
Февраль 19, 2010, 23:05 »
Цитата: Sancho_s_rancho от Февраль 19, 2010, 22:35
Эта тема поднималась уже много раз.
Соберите куте с оптимизацией -Os(ключ оптимизации по размеру для компилятора mingw32 )
На этапе configure указать ключ -no-exceptions (если вы исключениями не пользуетесь). Использование данного ключа уменьшит размер файлов на 15-20%. Для уменьшения размера исполняемых файлов и разделяемых библиотек может быть использован упаковщик исполняемых файлов UPX.
И что получится по объему в результате при использовании -no-exceptions вместе с -Os?
Искал по "размер qt dll" и нашел пока только
http://www.prog.org.ru/topic_3974_0.html
Про -Os там забыли упомянуть, -no-exceptions есть. Ну и еще кучу опций компиляции отключили, вот только безопасно ли это?.
Цитата: Sancho_s_rancho от Февраль 19, 2010, 22:35
Но может вы просто неправильно выбрали инструменты? Подумайте о fltk или вообще о связке языка C с прямым вызовом api-шных функций ОС.
Мне нужна работа с базами данных, которой нет в fltk(и не должно быть, так как это GUI toolkit). В Qt мне нравится подход "все в одном" с хорошей интеграцией этого всего и наличие так сказать прослойки над С++, которая уменьшает вероятность внесения багов за счет низкоуровневой работы. Ну и графический дизайнер интерфейса тоже не помешает.
С с OS API для моей задачи это сильный перебор, у меня просто навороченная морда над БД с графиками и т. п.
Записан
Sancho_s_rancho
Гость
Re: Размер библиотек Qt
«
Ответ #4 :
Февраль 19, 2010, 23:22 »
Даже если вы пересоберете библиотеку выкинув все "лишнее", и упаковщиком еще пройдетесь, то размер уменьшится мегабайт до 3-4, т.е. на дискету 1,44 мб вы все равно не влезите. В добавок вам необходимо будет помнить о созданных вами же ограничениях при разработке и/или поддержке ПО.
Записан
lit-uriy
Джедай : наставник для всех
Offline
Сообщений: 3880
Re: Размер библиотек Qt
«
Ответ #5 :
Февраль 20, 2010, 09:00 »
>>Неужели где-то еще дискетами пользуются?
Ага, я с такой же фигнёй маялся, пришлось архив нарезать на клочки и коробку дискет отправить заказчику.
Просто комп далеко в тайге стоит, и USB'ей даже примерно нету и виндовоз 98 и CD'юка нету, вообще алес
Записан
Юра.
panAlexey
Гипер активный житель
Offline
Сообщений: 864
Акцио ЗАРПЛАТА!!!!! :(
Re: Размер библиотек Qt
«
Ответ #6 :
Февраль 20, 2010, 17:18 »
Цитата: quark от Февраль 19, 2010, 23:05
Цитата: Sancho_s_rancho от Февраль 19, 2010, 22:35
Но может вы просто неправильно выбрали инструменты? Подумайте о fltk или вообще о связке языка C с прямым вызовом api-шных функций ОС.
Мне нужна работа с базами данных, которой нет в fltk(и не должно быть, так как это GUI toolkit). В Qt мне нравится подход "все в одном" с хорошей интеграцией этого всего и наличие так сказать прослойки над С++, которая уменьшает вероятность внесения багов за счет низкоуровневой работы. Ну и графический дизайнер интерфейса тоже не помешает.
У вас противоречие целей и "нравицо". Поддерживаю Sancho_s_rancho, определитесь уж че важнее..
Записан
Win Xp SP-2, Qt4.3.4/MinGW.
http://trdm.1gb.ru/
mcrads
Гость
Re: Размер библиотек Qt
«
Ответ #7 :
Февраль 20, 2010, 18:29 »
Может вам следует строже относиться к включаемым модулям? например #include <QtGui> подключит весь модуль ГУЯ, а может вам оттуда нужно всего то QPushButton & QLabel? и тогда можно вместо включения всего куска весом в 4-5 Мб включить его элементы по 300Кб максимум. поэтому я бы посоветовал внимательнее следить за включаемыми модулями и контролировать каждый самому. даже из ядра кути QtCore. Ну и конечно же статическая сборка - это не оспаривается даже, это обязательно =)
Записан
SABROG
Гость
Re: Размер библиотек Qt
«
Ответ #8 :
Февраль 21, 2010, 02:03 »
Цитата: mcrads от Февраль 20, 2010, 18:29
Может вам следует строже относиться к включаемым модулям? например #include <QtGui> подключит весь модуль ГУЯ, а может вам оттуда нужно всего то QPushButton & QLabel? и тогда можно вместо включения всего куска весом в 4-5 Мб включить его элементы по 300Кб максимум. поэтому я бы посоветовал внимательнее следить за включаемыми модулями и контролировать каждый самому. даже из ядра кути QtCore. Ну и конечно же статическая сборка - это не оспаривается даже, это обязательно =)
Не важно как ты подключаешь:
Код
C++ (Qt)
#if 0
#include <QtGui> // так
#else
#include <QtGui/QLabel> // или так
#endif
Qt помещает
ВСЕ
классы в .dll на этапе компиляции Qt. Даже если ты используешь один самый маленький класс, но из модуля QtGui, то тебе придется тащить с собой весь модуль. Так как этими .dll могут пользоваться и другие программы написанные на Qt. Когда Qt собрана в статике, то компилятор сам выкидывает не нужное, то что ты не используешь. Но, если классы Qt внутри себя используют что-то то это выкинуто не будет. Например везде используется QString, это означает, что за ним потянутся все классы, которые как-то влияют на его работу, например QTextCodec с полным набором всевозможных кодировок, которые могут даже и не использоваться никогда тобой лично или самой Qt. Диаграмму зависимостей можно посмотреть
здесь
, правда она устарела на 3 года.
Записан
mcrads
Гость
Re: Размер библиотек Qt
«
Ответ #9 :
Февраль 21, 2010, 10:12 »
хм. догадывался, но не знал. но получается все равно чуть меньше чем при просто статике.
Записан
break
Гипер активный житель
Offline
Сообщений: 846
Re: Размер библиотек Qt
«
Ответ #10 :
Февраль 21, 2010, 13:57 »
Цитировать
так сказать прослойки над С++, которая уменьшает вероятность внесения багов за счет низкоуровневой работы
ерунда какая-то при использование библиотеки Qt обращение по нулевому или битому указателю будет также как и везде печально, и памячть тоже затереть можно - не понимаю о какой оболочке речь...
Цитировать
Qt помещает ВСЕ классы в .dll на этапе компиляции Qt.
вы имеете ввиду что линкер это делает при динамической линковке любых либ а не только Qt
Цитировать
хм. догадывался, но не знал. но получается все равно чуть меньше чем при просто статике.
почему чуть меньше? так же абсолютно - либа линкуется полностью.
Записан
lit-uriy
Джедай : наставник для всех
Offline
Сообщений: 3880
Re: Размер библиотек Qt
«
Ответ #11 :
Февраль 21, 2010, 19:45 »
>>Может вам следует строже относиться к включаемым модулям? например #include <QtGui> подключит весь модуль ГУЯ
Это влияет только на скорость компиляции, т.к. компилятор вынужден просматривать большую пачку заголовочных файлов.
Записан
Юра.
mcrads
Гость
Re: Размер библиотек Qt
«
Ответ #12 :
Февраль 21, 2010, 21:14 »
для интереса перепроверился - ок. 300Кб меньше при описывании отдыльно. хотя может я просто собираю без ключика -no-exceptions - потому и сложилось такое впечатление))
Записан
quark
Гость
Re: Размер библиотек Qt
«
Ответ #13 :
Февраль 22, 2010, 00:34 »
Цитата: mcrads от Февраль 20, 2010, 18:29
каждый самому. даже из ядра кути QtCore. Ну и конечно же статическая сборка - это не оспаривается даже, это обязательно =)
К сожалению, не получится. Мне нужна LGPL лицензия. А для статики Qt идет под GPL или платной.
Записан
crackedmind
Гость
Re: Размер библиотек Qt
«
Ответ #14 :
Февраль 22, 2010, 07:03 »
-no-stl -no-qt3support позволят еще несколько уменьшить размер dll'ок
Но ИМХО при всем желании не выйдет уменьшить до такой степени чтоб влезало на дискету
Записан
Страниц: [
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 сферы
=> Говорилка
=> Юмор
=> Объявления
Загружается...