Il y a plusieurs avantages à la compilation statique : léger gain en rapidité et une facilité de déploiement déconcertante (un seul exécutable qui comprend l'application ainsi que les bibliothèques de Qt et MinGW).
Par contre le poids du binaire généré sera bien plus lourd, vous pourrez toujours le réduire à l'aide d'UPX.
Du côté de Qt
Avant toute chose, mettez un pack de bières au frais.
Ensuite, il faut compiler un Qt statique, ce qui n'est pas bien compliqué. Assurez-vous d'avoir les binaires de MinGW dans le PATH.
Les opérations à venir se passeront dans le dossier contienant Qt, disons C:\Qt\4.8.4.
Éditez le fichier mkspecs\win32-g++\qmake.conf et modifiez la ligne qui contient QMAKE_LFLAGS :
QMAKE_LFLAGS = -static -static-libgcc
Puis dans une console, tapez :
> cd C:\Qt\4.8.4
> configure.exe -static -release -no-exceptions -opensource -nomake demos -nomake examples
> mingw32-make
Ceci prendra un bon moment, vous pouvez entamer la bière si ce n'est déjà fait.
Les arguments "-nomake demos -nomake examples" sont optionnels, ils permettent de zapper la compilation des exemples et démos qui prennent un temps fou.
Il est possible d'activer/désactiver des fonctionnalités/plugins, essayez la commande :
> configure.exe help
Du côté du projet
Vous êtes encore assez frais ? Bon, éditez le fichier .pro de votre projet et ajoutez cette ligne :
CONFIG += static
Compilez en mode release... C'est terminé !
Plus d'informations : Quand et comment réaliser une compilation "statique"? et Building static applications.