Sto imparando a sviluppare app utilizzando Qt Creator. Ho creato una semplice app sotto Windows, dipende dagli usi mingwm10.dll, QtCore4.dll, QtGui4.dll, QtNetwork4.dll. Fuori da QtQui4.dll Uso solo un paio di widget e non ho bisogno di tutto il resto ... È possibile ridurre le dimensioni di QtGui4.dll o fare qualcos'altro per ridurre le dimensioni dell'applicazione? E il collegamento statico? Incorporerà l'intera DLL o solo alcune parti che vengono utilizzate? E inoltre è possibile con Qt collegare alcune DLL staticamente e alcune dinamicamente?Diminuisci dimensione applicazione Qt interfaccia utente
risposta
Non è possibile ridurre QtGui4.dll rimuovendo alcune funzioni. Trolltech è having a look at this, ma la buona soluzione sembra abbastanza distante:
Collegamento statico, penso che sia molto problematico su Windows. Ogni volta che ci provavo, era un incubo.
Quindi, sembra che tu sia bloccato con la normale DLL. L'unica cosa che si può fare (cosa che faccio per le mie applicazioni Qt è):
- uso UPX per comprimere la DLL
o
- uso forte compressione nel vostro installatore
Se già UPX la tua DLL, non è possibile ridurlo ulteriormente con la compressione del programma di installazione, ma questo può ridurre altri file.
Il modo migliore è configurare manualmente la libreria Qt con configure. Con l'emissione di
configure --help
vedrete una serie di opzioni che potrebbero aiutare a ridurre sia il disco che l'ingombro di memoria. Per esempio.
--no-stl
--no-exceptions
possono entrambi ridurre l'ingombro della vostra applicazione. È inoltre possibile modificare il mkspec per utilizzare i flag di ottimizzazione più aggressivi per il compilatore.
Se si collega staticamente si finisce con un exe da 1,5 GB e si sacrificano alcune funzionalità come i plug-in. Quindi non ne vale la pena a meno che tu non voglia distribuire le DLL. Ma sì, potresti provare il suggerimento di Henrik ed escludere anche Webkit che è probabilmente il più grande pezzo di codice.
Nel contesto della domanda originale, escludendo WebKit non fa alcuna differenza come lui non l'ho usato (solo moduli Core, Gui, Network). –
Sì, "UPX -9 QtGui4.dll" è la strada da percorrere :) –
Suggerimento interessante, non ho mai usato UPX prima. – PowerApp101
Grazie! Qual è l'impronta più piccola dell'app GUI Qt che potresti archiviare in questo modo? – Dmitri