Question

J'apprends à développer des applications utilisant Qt Creator. J'ai construit une application simple sous Windows, dépend utilise mingwm10.dll, QtCore4.dll, QtGui4.dll, QtNetwork4.dll. Sur QtQui4.dll J'utilise seulement quelques widgets, et ne pas besoin de tout le reste ... Est-il possible de réduire la taille soit de QtGui4.dll ou faire quelque chose d'autre pour diminuer la taille du déploiement de l'application? Que diriez-vous de liens statiques? Est-il intégrer l'ensemble dll, ou seulement des parties de celui-ci qui sont utilisés? Et il est également possible avec Qt pour relier quelques DLLs staticly et certains dynamicly?

Était-ce utile?

La solution

Il est impossible de réduire la QtGui4.dll en supprimant certaines fonctions. Trolltech est avoir un regard sur ce , mais la bonne solution semble assez éloigné:

liaison statique, je pense qu'il est très problématique sur les fenêtres. Chaque fois que j'ai essayé, il a été un cauchemar.

Alors, il semble que vous êtes coincé avec la DLL régulière. La seule chose que vous pouvez faire (ce que je fais pour mes applications Qt est):

  • UPX pour compresser votre DLL

ou

  • utiliser une forte compression dans votre installateur

Si vous avez déjà UPX votre dll, vous ne pouvez pas réduire davantage avec la compression d'installation, mais cela peut réduire les autres fichiers.

Autres conseils

La meilleure façon est de configurer manuellement la bibliothèque Qt avec configure. En émettant

configure --help

vous verrez un certain nombre d'options qui pourraient aider à réduire à la fois le disque et l'empreinte mémoire. Par exemple.

--no-stl
--no-exceptions

peut à la fois réduire l'empreinte de votre application. Vous pouvez également modifier le mkspec utiliser les options d'optimisation plus agressifs pour votre compilateur.

Si vous établissez un lien statique vous vous retrouvez avec un exe 1.5GB et vous sacrifiez une fonctionnalité comme des plug-ins. Il est donc pas vraiment la peine à moins que vous ne voulez pas distribuer les dll. Mais oui, vous pouvez essayer la suggestion de Henrik et d'exclure également Webkit qui est probablement le plus gros morceau de code.

Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top