Russian Qt Forum
Сентябрь 30, 2024, 12:32 *
Добро пожаловать, Гость. Пожалуйста, войдите или зарегистрируйтесь.
Вам не пришло письмо с кодом активации?

Войти
 
  Начало   Форум  WIKI (Вики)FAQ Помощь Поиск Войти Регистрация  

Страниц: [1]   Вниз
  Печать  
Автор Тема: сборка qt с минимальным размером библиотек  (Прочитано 5395 раз)
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.
« Последнее редактирование: Май 26, 2010, 17:53 от grg » Записан
Rcus
Гость
« Ответ #1 : Май 26, 2010, 18:09 »

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

Цитировать
А вы думали всё так просто - подконфигурировал, собрал и все?

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

Насчет nm спасибо! Про ресурсы забыл, выдерну их, но это максимум 0.5 Mb.
Записан
Rcus
Гость
« Ответ #3 : Май 26, 2010, 20:00 »

Можно еще поиграться с флагами компилятора и компоновщика (тем более что вышел 4.5.0 с WPO), но что вы хотите отыграть на этом? Флеша не хватает?
Записан
grg
Гость
« Ответ #4 : Май 27, 2010, 10:48 »

не столько флеша, сколько оперативки ее всего 32 МБ.
использую сигналы/слоты, интернационализацию, qwidget (как базу для своих виджетов, qt-шные вырезал, которые поддавались).
Все крутится на qws, X сервера нет.

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

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

static сборка тоже не устраивает - нужен минимальный размер исполняемого файла, по определенным причинам.
Записан
Rcus
Гость
« Ответ #5 : Май 27, 2010, 12:47 »

От Qt еще много чего можно отрезать, например кодеки, поддержку разной глубины цветов и т.п., но без знания о предназначении системы и окружении давать конкретные советы бесполезно.
Записан
shadone
Гость
« Ответ #6 : Июнь 15, 2010, 11:09 »

Все действительно не так просто.
см http://doc.trolltech.com/4.7-snapshot/fine-tuning-features.html - можно отключить функциональность которая не требуется, но вероятно потребует "доводки до ума" т.к. эти конфигурации не поддерживаются.
Записан
Страниц: [1]   Вверх
  Печать  
 
Перейти в:  


Страница сгенерирована за 0.045 секунд. Запросов: 20.