Diminuir o tamanho do aplicativo Qt GUI
-
23-08-2019 - |
Pergunta
Estou aprendendo a desenvolver aplicativos usando Qt Creator. Eu construí um aplicativo simples no Windows, depende de usos mingwm10.dll, QtCore4.dll, QtGui4.dll, QtNetwork4.dll. Fora de QtQui4.dll eu uso apenas um par de widgets, e não precisam de todo o resto ... É possível, quer diminuir o tamanho do QtGui4.dll ou fazer outra coisa para diminuir o tamanho da instalação de aplicação? Que tal vinculação estática? Será que vai incorporar toda a dll, ou apenas partes dele que são usados? E também é possível com o Qt para ligar algumas DLLs staticly e alguns dynamicly?
Solução
Não é possível encolher a QtGui4.dll removendo algumas funções. Trolltech é ter um olhar para este , mas a boa solução parece bastante distante:
estática ligando, eu acho que é muito problemático janelas. Cada vez que eu tentei, foi um pesadelo.
Assim, parece que você está preso com a DLL regular. A única coisa que você pode fazer (o que eu faço para o meu Qt Apps é):
- UPX a compressão da sua DLL
ou
- usar a compressão forte em seu instalador
Se você já UPX sua DLL, você não pode reduzi-lo ainda mais com a compressão instalador, mas isso pode reduzir outros arquivos.
Outras dicas
A melhor maneira é configurar manualmente a biblioteca Qt com configure. Emitindo
configure --help
você verá um número de opções que podem ajudar a reduzir tanto disco e consumo de memória. Por exemplo.
--no-stl
--no-exceptions
pode reduzir tanto a pegada de sua aplicação. Você também pode modificar o mkspec de usar opções de otimização mais agressivos para o seu compilador.
Se você vincular estaticamente você acabar com um exe 1.5GB e você sacrificar algumas funcionalidades como plug-ins. Portanto, não é realmente vale a pena a menos que você não deseja distribuir as dlls. Mas sim, você poderia tentar a sugestão de Henrik e também excluem Webkit que é provavelmente o maior pedaço de código.