Минимальный размер исполняемого файла Qt - PullRequest
19 голосов
/ 16 января 2009

Теперь, когда Qt выходит на LGPL, я снова попробую. Несколько лет назад я по некоторым причинам отказался, одной из которых был огромный размер исполняемых файлов (Qt на windows). Я нашел нижний предел около 5 МБ. Trolltech подтвердил это по запросу, но сказал, что степень детализации будет улучшена, что приведет к меньшим размерам (в зависимости от требуемых элементов).

Все могло бы измениться. Каков размер "hello world" (windows и console) в Qt в наше время?

Речь идет о статических ссылках. Я думаю, что qtCore и qtGui требуются.

Ответы [ 3 ]

5 голосов
/ 16 января 2009

Здесь есть Обсуждение от 2007 , наименьшее число, которое я увидел там после быстрого просмотра, было 1,3 МБ (сжато с помощью UPX ), так что, похоже, это может быть немного понизили, но все еще довольно велики.

4 голосов
/ 18 января 2009

Наш Installbuilder для Qt - это кроссплатформенный инструмент для установки, имеющий интерфейс Qt и используемый многими коммерческими разработчиками (включая сам Trolltech для упаковки своей QtCreator IDE ). Используя 4.4 и компилируя части, которые нам не нужны, мы сократили накладные расходы до 4,1 МБ в Linux x86, 5,2 МБ в Linux x64 и 5,3 МБ в Windows. Учтите, что это перед обработкой с помощью UPX. Кроме того, если один и тот же двоичный файл должен поддерживать несколько дистрибутивов Linux, вам может потребоваться доставка libstdc ++, что добавит к размеру около 800 КБ.

Вам нужно будет создать свои собственные версии и в основном включить / отключить ifdef # для неиспользуемых виджетов, форматов изображений, которые вам не нужно поддерживать, и т. Д. Хотя исходный код Qt уже подготовлен для этого, и Есть некоторые инструменты, которые должны помочь, реальность такова, что это громоздкий ручной процесс (но необходимый для такого приложения, как наше). Их встроенная версия (ранее известная как QTopia) и «обычный» Qt были объединены в одну и ту же кодовую базу, поэтому я уверен, что в будущем будет все проще создавать настраиваемые / урезанные версии.

3 голосов
/ 26 января 2009

Это во многом зависит от вашей конфигурации и метода развертывания. Конечно, вы можете компилировать как статические, что исключит неиспользуемый код. Вы также можете исключить такие вещи, как исключения и STL, которые уменьшат объем памяти и места на диске. И, наконец, используете ли вы сжатую файловую систему, такую ​​как squashfs, cramf или jffs2. Попробуйте

configure --help

для множества вариантов. Со встроенными портами Qt для встраиваемых Linux и Windows CE вы также можете использовать qconfig для загрузки файлов конфигурации, которые позволяют вам удалить много групп функций. См. http://doc.trolltech.com/main-snapshot/fine-tuning-features.html для получения дополнительной информации.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...