Нажмите для просмотра прикрепленного файлаДля тех кто помешан на обезжиривании Qt. Вместе с исходниками Qt для мобильных систем поставляется утилита QConfig, которая позволяет отключать возможности (features).
При этом утилита сама смотрит за зависимостями и отключает зависимые компоненты.
Дистрибутивы для win и *nix идут без этой утилиты. Поэтому, чтобы воспользоваться данной утилитой нам понадобится скачать общий дистрибутив Qt для всех платформ. Сделать это можно в .torrent репозитории
http://dist.trolltech.com/torrents/ Качать надо это:
http://dist.trolltech.com/torrents/qt-all-...5.0.zip.torrentСразу скажу, что у меня уже стояла Qt собранная статически, поэтому я просто зашел в папку $(QTDIR)/tools/qconfig и вбил заветные команды:
qmake
mingw32-make release
После этого я получил в папке release готовую утилиту. Я её залил сюда (3Mb):
http://filebeam.com/b143c6b3d9bb05976e6ab1ea2fed7756Далее запускаем её, не важно откуда. Появится диалог выбора файла. Надо выбрать файл $(QTDIR)/src/corelib/global/qfeatures.txt
Затем снимаем галки, которые нам не нужны и сохраняем в файл $(QTDIR)/src/corelib/global/qconfig-НАШЕИМЯ.h
Расположение и имя файла должно быть именно таким иначе он не найдется.
Затем используем не документированный для виндовых/линуксовых дистрибутивов, но существующий ключ -qconfig таким образом:
configure.exe -qconfig НАШЕИМЯ [тут идут остальные обычные параметры типа -confirm-license -static -no-exceptions и т.д.]
Дальше собираем как обычно. В аттаче я прикрепил свою конфигурацию, не уверен, что она оптимальная или правильная.
Проверил на примере /examples/widgets/calculator.
В обычном статике размер: 7,14 МБ (7 494 656 байт)
C теми же ключами но после редактирования через qconfig: 6,19 МБ (6 496 256 байт)
UPX сжал exe файл до : 2,34 МБ (2 463 232 байт)
Для сравнения обычная (shared) сборка, сумма всех файлов в папке: 13,1 МБ (13 779 036 байт)
---
Я пошел дальше в своих изысканиях и решил собрать Qt с оптимизацией по размеру. Отредактировал файл $QTDIR/mkspecs/win32-g++/qmake.conf и заменил строчку:
Цитата
QMAKE_CFLAGS_RELEASE = -O2
на
Цитата
QMAKE_CFLAGS_RELEASE = -Os
Проделал ту же операцию, что и раньше. Теперь пример calculator.exe сжатый UPX'ом весит: 1,99 МБ (2 095 104 байт)
Хоть и в ущерб скорости (оптимизация убрала выравнивание страниц), зато в пользу размера. Еще бы, есть разница 13Мб и 1,99Мб ?
---
Немного погуглив нашел еще пару ключей для компилятора, которые прописал тоже в qmake.conf
Цитата
-fmerge-all-constants
-fno-default-inline
-fno-inline
-ffunction-sections
-fdata-sections
-Wl,--gc-sections
Новый рекорд: 1,86 МБ (1 951 744 байт)
Но есть побочный эффект. Простейшие примеры линкуются около минуты.
В общем экспериментируйте.