Вопрос

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

Это было полезно?

Решение

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

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

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

  • использовать УПХ сжать вашу DLL

или

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

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

Другие советы

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

configure --help

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

--no-stl
--no-exceptions

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

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

Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top