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?

Foi útil?

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.

Licenciado em: CC-BY-SA com atribuição
Não afiliado a StackOverflow
scroll top