Подтвердить что ты не робот

Уменьшить размер приложения Qt GUI

Я изучаю разработку приложений с помощью Qt Creator. Я создал простое приложение под Windows, зависит от использования mingwm10.dll, QtCore4.dll, QtGui4.dll, QtNetwork4.dll. Из QtQui4.dll я использую только пару виджетов и не нуждаюсь во всех остальных... Можно ли уменьшить размер QtGui4.dll или сделать что-то еще, чтобы уменьшить размер развертывания приложения? Как насчет статической привязки? Включит ли он всю dll или только ее части, которые используются? А также возможно ли с Qt связывать некоторые dll статически и некоторые динамически?

4b9b3361

Ответ 1

Невозможно сжать QtGui4.dll, удалив некоторые функции. Trolltech смотря на это, но хорошее решение кажется довольно далеким:

Статическая связь, я думаю, что это очень проблематично для окон. Каждый раз, когда я пытался, это был кошмар.

Итак, похоже, что вы застряли в обычной DLL. Единственное, что вы можете сделать (что я делаю для своих приложений Qt):

  • используйте UPX для сжатия вашей DLL

или

  • используйте сильное сжатие в вашем установщике

Если вы уже обновили свою DLL, вы не можете уменьшить ее с помощью сжатия установщика, но это может уменьшить другие файлы.

Ответ 2

Лучший способ - настроить Qt-библиотеку вручную с помощью configure. Выдавая

configure --help

вы увидите ряд опций, которые могут помочь уменьшить как объем диска, так и объем памяти. Например.

--no-stl
--no-exceptions

может уменьшить объем вашего приложения. Вы также можете изменить mkspec для использования более агрессивных флагов оптимизации для вашего компилятора.

Ответ 3

Если вы свяжетесь статически, вы получите 1,5 ГБ exe, и вы пожертвуете некоторыми функциями, такими как плагины. Поэтому это действительно не стоит, если вы не хотите распространять DLL. Но да, вы могли бы попробовать предложение Хенрика, а также исключить Webkit, который, вероятно, самый большой кусок кода.