Domanda

Sto imparando a sviluppare applicazioni che utilizzano Qt Creator. Ho creato una semplice applicazione in ambiente Windows, dipende usa mingwm10.dll, QtCore4.dll, QtGui4.dll, QtNetwork4.dll. Fuori QtQui4.dll io uso solo un paio di widget, e non hanno bisogno di tutto il resto ... E 'possibile sia ridurre le dimensioni del QtGui4.dll o di fare qualcosa di diverso per diminuire le dimensioni dispiegamento di applicazione? Che ne dite di collegamento statico? Sarà incorporare tutto il dll, o solo parti di esso che vengono utilizzati? Ed è anche possibile con Qt per collegare alcune DLL staticly e alcuni dynamicly?

È stato utile?

Soluzione

Non è possibile ridurre la QtGui4.dll rimuovendo alcune funzioni. Trolltech è avere uno sguardo a questo , ma la buona soluzione sembra abbastanza lontana:

linking statico, penso che sia molto problematico sulle finestre. Ogni volta che ho provato, è stato un incubo.

Quindi, sembra che si è bloccato con la DLL regolare. L'unica cosa che si può fare (cosa che faccio per le mie applicazioni Qt è):

  • UPX per comprimere la DLL

o

  • utilizzare forte compressione nel vostro installatore

Se hai già UPX la DLL, non è possibile ridurlo ulteriormente con la compressione di installazione, ma questo può ridurre altri file.

Altri suggerimenti

Il modo migliore è quello di configurare manualmente la libreria Qt con configure. Mediante l'emissione di

configure --help

si vedrà una serie di opzioni che potrebbero contribuire a ridurre sia rigido e occupazione di memoria. Per es.

--no-stl
--no-exceptions

Possiamo ridurre l'impronta della vostra applicazione. È inoltre possibile modificare il mkspec utilizzare flag di ottimizzazione più aggressive per il vostro compilatore.

Se si collega in modo statico si finisce con un exe 1.5GB e sacrifichi alcune funzionalità, come plug-in. Quindi non è davvero la pena a meno che non si desidera distribuire le DLL. Ma sì, si potrebbe provare il suggerimento di Henrik e anche escludere Webkit, che è probabilmente il più grande pezzo di codice.

Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top