Russian Qt Forum

Qt => Установка, сборка, отладка, тестирование => Тема начата: grg от Май 26, 2010, 17:51



Название: сборка qt с минимальным размером библиотек
Отправлено: grg от Май 26, 2010, 17:51
Добрый день, столкнулся с проблемой уменьшения размера библиотеки qt.
на сайте (http://qt.nokia.com/products/platform/qt-for-embedded-linux) написаны следующие тех. данные:
Цитировать
Storage footprint dependent on configuration
Compressed: 1.7 - 4.1 MB
Uncompressed: 3.6 - 9.0 MB

Собственно как можно добиться хотя бы 9 MB ? Или они пишут только про QtCore и QtGui? Что входит в обещанные 3.6MB?
мои результаты такие (в байтах):
QtCore 3.463.586
QtGui 5.635.937
QtNetwork 596.542
QtXml 433.565
QtSvg 460.713
QtScript 36.994
QtTest 160.015
QtSql 324.565
= ~11.1 MB
При этом выброшено из библиотеки очень многое, в гуе, например, оставил практически только QWidget.
команда сборки:
Код:
./configure -prefix /home/grg/qtembedded/qttarget -qconfig qttarget -opensource -shared -embedded arm 
-xplatform qws/linux-arm-g++ -nomake demos -nomake translations -nomake examples -nomake docs -qt-freetype
-depths all -no-opengl -no-dbus -no-cups -no-nis -system-libjpeg -qt-libpng -qt-libtiff -qt-libmng -qt-zlib -no-mmx
-no-sse -no-sse2 -no-3dnow -no-scripttools -no-webkit -no-phonon -no-xmlpatterns -no-qt3support -qt-gfx-linuxfb
-qt-kbd-usb -qt-kbd-tty -no-exceptions -no-stl

в приложении файл конфига, который можно открыть с помощью qconfig для наглядности.

кросскомпиляторы gcc 3.4.1 и gcc 4.2.2.


Название: Re: сборка qt с минимальным размером библиотек
Отправлено: Rcus от Май 26, 2010, 18:09
А вы думали всё так просто - подконфигурировал, собрал и все? На самом деле и 9М неплохой результат до сжатия, да и 3.6 обещают без QtGui наверное. Предлагаю посмотреть на вывод
${prefix}nm $QTDIR/lib/*.so -CS --size-sort -td | sort -k2


Название: Re: сборка qt с минимальным размером библиотек
Отправлено: grg от Май 26, 2010, 18:47
Цитировать
А вы думали всё так просто - подконфигурировал, собрал и все?

да конечно, если об этом написано на офф сайте, если бы не писали, то да хакать qt и хакать(например, qt 4.x в МСВС старых версий), а если они это выставляют как преимущество, мол используйте нашу библиотеку во встраиваемых системах с ограниченными ресурсами, то разумно предположить, что этого можно достичь простыми телодвижениями.

Насчет nm спасибо! Про ресурсы забыл, выдерну их, но это максимум 0.5 Mb.


Название: Re: сборка qt с минимальным размером библиотек
Отправлено: Rcus от Май 26, 2010, 20:00
Можно еще поиграться с флагами компилятора и компоновщика (тем более что вышел 4.5.0 с WPO), но что вы хотите отыграть на этом? Флеша не хватает?


Название: Re: сборка qt с минимальным размером библиотек
Отправлено: grg от Май 27, 2010, 10:48
не столько флеша, сколько оперативки ее всего 32 МБ.
использую сигналы/слоты, интернационализацию, qwidget (как базу для своих виджетов, qt-шные вырезал, которые поддавались).
Все крутится на qws, X сервера нет.

В принципе все работает как должно работать, но просто минимальный функционал qt, как то много весит. У меня есть на что потратить оперативку помимо qt.

если предложите бустовские сигналы (вторые), то пожалуйста ткните носом в описание как они между потоками работают, не нашел информации, по документам на офф сайте не понял просто потокобезопасны они или могут как qt-шные между потоками работать.

static сборка тоже не устраивает - нужен минимальный размер исполняемого файла, по определенным причинам.


Название: Re: сборка qt с минимальным размером библиотек
Отправлено: Rcus от Май 27, 2010, 12:47
От Qt еще много чего можно отрезать, например кодеки, поддержку разной глубины цветов и т.п., но без знания о предназначении системы и окружении давать конкретные советы бесполезно.


Название: Re: сборка qt с минимальным размером библиотек
Отправлено: shadone от Июнь 15, 2010, 11:09
Все действительно не так просто.
см http://doc.trolltech.com/4.7-snapshot/fine-tuning-features.html - можно отключить функциональность которая не требуется, но вероятно потребует "доводки до ума" т.к. эти конфигурации не поддерживаются.