Je suis sûr que tout le monde a remarqué quand ils ont déployé leur programme via windeployqt.exe, le programme dépend de différentes bibliothèques dynamiques et qt. Par conséquent, l'analyse sur d'autres ordinateurs devient gênante. Pourquoi? Nous devons garder l'exe'shnik lui-même dans le dossier avec les bibliothèques nécessaires. Bien sûr, vous pouvez réussir à résoudre ce problème sans liaison statique. D'accord, ce n'est pas pratique et chaque fois que vous devez faire des mouvements corporels supplémentaires. Il est plus facile de s'user une fois et de ne pas faire de mouvements inutiles. Un autre avantage de la liaison statique est la taille du fichier. Avec la liaison dynamique, l'exe lui-même pèse d'environ 1 Mo à 7-8 Mo, et avec l'environnement il peut facilement atteindre 70 Mo, même si le projet est petit. Avec le lien statique, il n'y a qu'un exe, qui pèse environ 2 fois moins que l'environnement avec le lien dynamique.
Pour le montage il vous faut :
- Qt 5.xx avec les composants activés (si Qt a déjà été installé, les composants requis peuvent être installés à l'aide de l'outil de maintenance Qt) :
- Qt - Qt 5.x - MinGW xxx 32 bits
- Qt - Qt 5.x - Sources
- Qt - Outils - MinGW
- Perl (Strawberry Perl, par exemple). J'utilise fraise-perl-5.30.2.1-32bit.
Vérifiez que le chemin d'accès au fichier exécutable Perl est enregistré dans la variable d'environnement PATH. Vous pouvez sauter ce point, mais il vaut mieux vérifier. - Python 3.8
Le chemin d'installation de Qt n'est pas important, je l'ai installé sur le lecteur D. Assurez-vous d'avoir suffisamment de mémoire disponible. Vous avez besoin d'au moins 30 Go d'espace libre.
L'algorithme lui-même :
- Allez dans le répertoire où se trouve le dossier Src (D:\Qt\5.xx\Src);
- Là, créez un dossier statique (D:\Qt\5.x.x\static);
- Src static. D:\Qt\5.x.x\static\Src. , Src;
- mingwXX_32 ( , , mingw73_32). D:\Qt\5.x.x\static\mingwXX_32;
- qmake.conf, D:\Qt\5..\static\Src\qtbase\mkspecs\win32-g++.
,load(qt_config)
:
QMAKE_LFLAGS += -static -static-libgcc QMAKE_CFLAGS_RELEASE -= O2 DEFINES += UNICODE QT_STATIC_BUILD
- qmake.conf;
- (! CMD! CMD! CMD!) MinGW. ( ) mingw.
MinGW Qt 5.x.x (MinGW x.x.x 32-bit)
- MinGW :
set LANG=en
set QT_INSTALL_PREFIX="C:\Qt\5.8-static\mingw53_32"
cd /d %QT_INSTALL_PREFIX%\..\Src
( )
configure.bat -static -debug-and-release -platform win32-g++ -prefix %QT_INSTALL_PREFIX% -qt-zlib -qt-pcre -qt-libpng -qt-libjpeg -qt-freetype -opengl desktop -opensource -confirm-license -make libs -nomake tools -nomake examples -nomake tests -qt-sqlite -no-ssl
-no-ssl — Qt SSL.
, :
-
mingw32-make -k -j4
, 4 , / , . -j4 4 .
-
mingw32-make -k install
D:\Qt\5.x.x\stati\mingwXX_32;
- Qt Creator:
- -> -> Qt
- -> D:\Qt\5..\static\mingw73_32\bin\qmake.exe ->
- ->
- : Qt static x32 ( )
- : Desktop
- :
- : D:\Qt\5..\static
- Compilateur :
a) pour C : MinGW xxx 32 bits pour C
b) pour C++ : MinGW xxx 32 bits pour C++
- Profil Qt : Qt static x32 (le nom de profil que vous avez fourni lors de l'ajout du profil)
- Appliquer -> D'accord
- Il ne reste plus qu'à reconstruire votre projet avec un nouveau kit.
Informations Complémentaires. J'ai:
- Qt 5.14.1
- MinGW 7.3.0 32 bits (mingw73_32)
- Python 3.8x32
- fraise-perl-5.30.2.1-32bi
- Windows 10 Professionnel x64
Le vol est normal.
J'ai pris des informations d'ici:
- vladsol.tk/2017/05/qt-5-8-0-static-build
- www.pvsm.ru/pesochnitsa/73256