Название: Qt,Windows: Размер статически слинкованной проги с Qt поверг в ужас Отправлено: navrocky от Июль 03, 2009, 14:39 Качнул Qt SDK, собрал ее с ключом -static.
Написал простейшую программу с одним виджетом: Код
файл проекта: Код
Размер исполняемого файла получил 11Мб :o gcc-3.4, qt 4.5.1. У всех так? Название: Re: Qt,Windows: Размер статически слинкованной проги с Qt поверг в ужас Отправлено: lit-uriy от Июль 03, 2009, 14:52 релиз или отладочная версия?
Название: Re: Qt,Windows: Размер статически слинкованной проги с Qt поверг в ужас Отправлено: navrocky от Июль 03, 2009, 15:03 Qt собирал как релиз, в проекте тоже не указано что отладка, значит релиз. В Makefile заглянул - там оптимизации включены, отладочных ключей нет.
Вообще gcc способен на умную статическую линковку? или он тупо шьет все либы к экзешнику... Кто каких размеров добивался и с каким компилятором? Название: Re: Qt,Windows: Размер статически слинкованной проги с Qt поверг в ужас Отправлено: SABROG от Июль 03, 2009, 15:17 Кто каких размеров добивался и с каким компилятором? 1,8Мб с MinGW. 11 Мб для статики нормально. Зато не придется ставить всякие redistributable как для msvc. А вообще тема уже настолько заезженная, что повторяться в сотый раз не хочется. Название: Re: Qt,Windows: Размер статически слинкованной проги с Qt поверг в ужас Отправлено: CroCIV от Июль 03, 2009, 15:29 Мне кааца это нормальный размер, Qt же не обращается к графической подсистеме винды. для управления своим гуём он использует свой собственный двиг, вот этот двиг и инклудится в екзешник, и запуская прилогу вначале прогружается в память этот двиг, а потом этот двиг начинает управлять формами твоего приложения. Тут нада ставить другой вопрос, почему екзешник получился такой маленький ? представляю каким бы был экзешник виндовой прилоги еслиб винда в него засунула свою подсистему вывода =))
Название: Re: Qt,Windows: Размер статически слинкованной проги с Qt поверг в ужас Отправлено: navrocky от Июль 03, 2009, 15:53 1,8Мб с MinGW. Это при каких условиях? с Qt или без?Просто мне кажется, что линкер gcc очень туп, без разбора шьет все функции, которые есть в либе. Может его можно как-то образумить? Хотя..... я сейчас померял суммарный объем либ libQtCore.a и libQtGui.a - 25Мб. Все-таки он что-то из них выкинул :-\ Тогда немного другой вопрос, можно ли добиться уменьшения объема, используя другие компиляторы? Название: Re: Qt,Windows: Размер статически слинкованной проги с Qt поверг в ужас Отправлено: Admin от Июль 03, 2009, 16:42 как я уже писал программа на .NET
300K кода + 300 мегобайт фреймворк После этого QT милашка. Название: Re: Qt,Windows: Размер статически слинкованной проги с Qt поверг в ужас Отправлено: break от Июль 03, 2009, 17:48 ОФФТОП:
Этот вопрос становится самым частым и самым глупым мегобаяном... Цитировать Размер исполняемого файла получил 11Мб Сори за эмоции, но я больше не могу....Вы собираетесь свою программу с 1 виджетом засовывать в микропроцессор где доступно только 4 kb или как?. А игрушку поставьте - самую трешовую - с ублюдской анимацией, мыльными текстурами и двикжом трехлетней давности, городом мозданным из 3-х домов под разными углами поставленными методом копи - пасте - вас не удивит что она 15 Гб весит??? А виндовс XP - в самой минимальной устаноке сколько весит вас не удивляет - неужели менее 11 Mb, а виста сколько в минимуме займет? - Я бы тоже удивился если бы ваша программа 11 Гб весила а не Мб. Мне кажестя эти вопросы возникают от непонимания что такое Qt и почему аналогичные программы написанные на MSVC(или на чем то еще) меньше весят - 1) ДА ПОТОМУ ЧТО В СЛУЧАЕ С MSVC аналогичные библиотеки уже имеются в системе 2) Qt кросплатформенная библиотека - надо иметь это ввиду и как бы понимать что код должен быть чуть сложнее чем реализации нативных возможностей 1-й системы, хотя я думаю это минимум размера добавляет В свое время я программировал на Делфи - там программы весила меньше если соответствующие BPL (фактически DLL) опять же лежали в системп - а если слинковать статически - то размер как бы не 20 метров будет... (там такая опция есть) Да и вообще сколько стоит жесткие диски сейчас - время думать не о размере на диске а о скорости разработки, выполнения, надежности программ. В сове время у меня был компьютер с диском 50 Мб - да тогда ч бы офигел от размера 10 м. экзешника - а сейччас даже не замечу... Название: Re: Qt,Windows: Размер статически слинкованной проги с Qt поверг в ужас Отправлено: ритт от Июль 03, 2009, 20:48 break, окружи пост выше тэгами оффтопика :)
CroCIV, лучше совсем не пиши, чем писать такое. navrocky, кури qtconfig. если размер бинаря - важный аспект задачи, дополнительно можешь включить оптимизацию по размеру в ущерб производительности приложения. а ещё открой для себя UPX. зы. линковщик в бинутилзах - чего его примешивать к гцц? Название: Re: Qt,Windows: Размер статически слинкованной проги с Qt поверг в ужас Отправлено: MURIK от Август 02, 2009, 11:01 Просто надо писать не используя Qt.
Если так уж надо кроссплатформенность, то используйте... бейсик - PureBasic http://purebasic.info/ Я не шучу! Вот пример проги, создающей окно с кнопкой Код: ; Создаём окно. Размер исполняемого файла получается примерно 20КБ (зависит от платформы, для которой он предназначен) и для его работы не нужны никакие библиотеки кроме системных. Скрин проги (http://s55.radikal.ru/i150/0906/dc/1a2a4736bd0a.png) Во вложении скомпилированая программа для Windows и Linux. Название: Re: Qt,Windows: Размер статически слинкованной проги с Qt поверг в ужас Отправлено: denka от Август 02, 2009, 11:17 ОФФ: Это печально - регистрироваться на форуме у которого основное направление Qt & C++ и пытаться там пропихнуть какой то Бейсик :)
Название: Re: Qt,Windows: Размер статически слинкованной проги Отправлено: Rcus от Август 02, 2009, 11:19 Ну и шуточки у вас, с каких это пор gtk стала системной библиотекой? Если нужен такой кросслпатформенный аналог MFC, то уж проще wx взять.
Название: Re: Qt,Windows: Размер статически слинкованной проги с Qt поверг в ужас Отправлено: f-r-o-s-t от Август 02, 2009, 11:35 :-[ Ужас какой ! Может ну его нахер ООП и сидеть клепать кроссплатформенные окошечки =(
Название: Re: Qt,Windows: Размер статически слинкованной проги с Qt поверг в ужас Отправлено: n. tr. от Август 03, 2009, 10:05 У всех так? А сами-то как думаете? Посмотрите размер qtcore.lib и qtgui.lib. Если собирать динамически, то придётся пихать эти qtcore4.dll и qtgui4.dll в дистрибутив, что приведёт к такому же итоговому размеру. Хотя сейчас посмотрел, релизная версия у одной не очень большой программы у меня 5мб (дебаг - 11.3), в зип-архиве порядка меньше 2 мб. Непонятно только возмущение/удивление. ПОчему такой размер - ясно. Чем это плохо - не ясно. А вот чему возмущаться тем более непонятно. Хочется писать маленькие программы для win - используйте MFC или там WTL. Название: Re: Qt,Windows: Размер статически слинкованной проги с Qt поверг в ужас Отправлено: kuzulis от Август 03, 2009, 11:53 Люди, а пробовал ли кто "вырезать" ненужные классы при статичекой сборке приложений? И какой минимальный размер занимали приложения? И какие классы использовались?
Кидайте сюда инфу :) PS : смотреть тут http://www.forum.crossplatform.ru/index.php?showtopic=981&st=20 пост №38 Название: Re: Qt,Windows: Размер статически слинкованной проги с Qt поверг в ужас Отправлено: pastor от Август 03, 2009, 23:58 Люди, а пробовал ли кто "вырезать" ненужные классы при статичекой сборке приложений? И какой минимальный размер занимали приложения? И какие классы использовались? Занимались уже таким. Ищи по форуму ЗЫ: Смысла я конечно в этом невижу :) Название: Re: Qt,Windows: Размер статически слинкованной проги с Qt поверг в ужас Отправлено: kuzulis от Август 04, 2009, 07:41 Цитировать Занимались уже таким. Ищи по форуму это понятноЦитировать ЗЫ: Смысла я конечно в этом невижу Улыбающийся как это? а если например приложение должно работать на встраиваемых железяках?!!Название: Re: Qt,Windows: Размер статически слинкованной проги с Qt поверг в ужас Отправлено: pastor от Август 04, 2009, 09:41 как это? а если например приложение должно работать на встраиваемых железяках?!! Для эмбедед согласен, это уже обсудили. Но для десктопа смысла невижу Название: Re: Qt,Windows: Размер статически слинкованной проги с Qt поверг в ужас Отправлено: kuzulis от Август 04, 2009, 10:41 Цитировать Для эмбедед согласен, это уже обсудили. Но для десктопа смысла невижу 1. Где обсудили? 2. А если прога должна работать как на десктопе так и на встраиваемой железяке?! Название: Re: Qt,Windows: Размер статически слинкованной проги с Qt поверг в ужас Отправлено: pastor от Август 04, 2009, 23:02 1. Где обсудили? 2. А если прога должна работать как на десктопе так и на встраиваемой железяке?! 1. Ищи аналогичные темы по форуму 2. А ты как думаешь? Название: Re: Qt,Windows: Размер статически слинкованной проги с Qt поверг в ужас Отправлено: kuzulis от Август 05, 2009, 07:59 1. OK
2. Никак не думаю.. я спрашиваю! Для работы проги на ембеддед железках можно ли довольствоваться обычным дистром QT4 , просто вырезав ненужные классы при линковке приложения? Или для этого нужно качать и QT для ембеддед? т.е много непоняток 3. А сколько весят приложения при использовании QT ембеддед? И сколько весит сам установленный QT ембеддед? Название: Re: Qt,Windows: Размер статически слинкованной проги с Qt поверг в ужас Отправлено: lit-uriy от Август 05, 2009, 20:56 kuzulis, по №3 - скорее отдельная тема.
Название: Re: Qt,Windows: Размер статически слинкованной проги с Qt поверг в ужас Отправлено: pastor от Август 05, 2009, 22:20 2. Никак не думаю.. я спрашиваю! Для работы проги на ембеддед железках можно ли довольствоваться обычным дистром QT4 , просто вырезав ненужные классы при линковке приложения? Или для этого нужно качать и QT для ембеддед? т.е много непоняток Для работы проги на ембеддед железках нужно скачать Qt for Embedded. Про процесс установки можно почитать здесь (http://doc.qtsoftware.com/4.5/qt-embedded-linux.html). В любом случае, толи с Qt для десктопа, толи для ембеддед из Qt можно "вырезать" ненужные тебе модули. Во времена qtopia-core была тулза qconfig для редактирования qconfig.h, при помощи которой можно было отключить ненужные модули. (Как сейчас дела обстоят в qt embedded незнаю). Вприницпе это можно выполнить и вручную. Когда-то на эту тему был топик. Вот он, нашел. (http://www.prog.org.ru/topic_3974_0.html) |