Задать вопрос

Максимальное уменьшение веса Qt'шных библиотек

В общем, пишу небольшой онлайн-инсталлятор для Windows-версии одного моего проекта. Опыта с GUI под окнами у меня нет, поэтому выбрал Qt, чтобы абстрагироваться от всех этих премудростей WinAPI/Com. И всё вроде замечательно, но меня смущает размер получившегося бинарника. Со всеми нужными прилинкованными Qt'шными библиотеками он весит 15 мб., если линковать динамически — 200 кб. Собирал Qt с такими флагами:

configure -release -static -no-accessibility -opensource -no-sql-sqlite -no-qt3support -no-opengl -no-openvg -no-libmng -no-libtiff -no-libjpeg -no-dsp -no-vcproj -openssl-linked -no-dbus -no-phonon -no-phonon-backend -no-multimedia -no-audio-backend -no-webkit -no-script -no-scripttools -no-declarative -no-declarative-debug

при компиляции использовал флаг -Os. Можно ли как-нибудь ещё уменьшить размер библиотек?
  • Вопрос задан
  • 6265 просмотров
Подписаться 7 Оценить Комментировать
Пригласить эксперта
Ответы на вопрос 3
@vadiml
Вы и так практически всё отключили.
Посмотрите сколько весят отдельно конкретно используемые Вами библиотеки (release сборки qtcore, qtgui, ...) — их сумма и будет Вашим минимумом.
Меньшего можно добиться только если вручную выкинуть неиспользуемые части qtgui и самому их пересобрать, но я сомневаюсь что это своит затраченного на это время — там достаточно много интересных зависимостей

ЗЫ -no-qt3support в реальности отбрасывает только отдельную библиотеку с более не используемыми классами, но для классов, названия которых сохранились с Qt3, например QString, код остаётся на месте и только скрывается в заголовочном файле через #ifdef QT3_SUPPORT

ЗЗЫ там ещё встречается #ifndef QT_NO_REGEXP, подтягиваемый через QtCore/qregexp.h, возможно для него тоже есть ключ, точнее сказать не могу, т.к. сейчас qt-devel и документация у меня не стоят.
Ответ написан
Комментировать
ixSci
@ixSci
Архивируйте содержимое — это единственный выход. Qt библиотеки, типа QtGui, — тяжеловесы. Заархивируйте каким-нибудь lzma и при старте разархивируйте и запускайте.
А вообще что у вас там на 15 метров? ~9 метров Qt GUI. Что еще? У меня полноценная программка с Qt Quick весит 17,5. При создании msi получается 7.5, при том, что msi использует не лучший алгоритм архивирования
Ответ написан
@MikhailEdoshin
Советуют еще отключать exceptions и сжимать код UPX'ом.
Ответ написан
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы