WindowsでのQt5.xxとMinGW32の静的リンク(1つのexe'shnikでのアセンブリ)

こんにちは、カブラフの住民!



windeployqt.exeを介してプログラムをデプロイしたときに、誰もが気付いたと思います。プログラムは、さまざまな動的ライブラリとqtライブラリに依存しています。その結果、他のコンピューターでのスキャンが不便になります。どうして? exe'shnik自体を必要なライブラリのあるフォルダに保存する必要があります。もちろん、静的リンクなしでこの問題を解決することができます。同意します、それは不便です、そしてあなたが余分な体の動きをする必要があるたびに。一度疲れて、不必要な動きをしない方が簡単です。静的リンクのもう1つの利点は、ファイルサイズです。ダイナミックリンクを使用すると、exe自体の重量は約1 MBから7〜8 MBになり、環境を使用すると、プロジェクトが小さくても、簡単に70MBに達する可能性があります。静的リンクを使用すると、exeのみが存在し、動的リンクを使用する環境の約2分の1の重量になります。



組み立てには以下が必要です。



  • コンポーネントが有効になっているQt5.xx(Qtがすでにインストールされている場合は、Qtメンテナンスツールを使用して必要なコンポーネントをインストールできます):

  • Qt-Qt 5.x-MinGW xxx32ビット

  • Qt-Qt5.x-ソース

  • Qt-ツール-MinGW

  • Perl(Strawberry Perlなど)。私はストロベリーパール-5.30.2.1-32ビットを使用しています。

    Perl実行可能ファイルへのパスがPATH環境変数に登録されていることを確認してください。この点はスキップできますが、確認することをお勧めします。
  • Python 3.8



Qtのインストールパスは重要ではありません。ドライブDにインストールしています。十分なメモリがあることを確認してください。少なくとも30GBの空き容量が必要です。



アルゴリズム自体:



  1. Srcフォルダーがあるディレクトリに移動します(D:\ Qt \ 5.xx \ Src);
  2. そこで、静的フォルダーを作成します(D:\ Qt \ 5.x.x \ static);
  3. Src static. D:\Qt\5.x.x\static\Src. , Src;
  4. mingwXX_32 ( , , mingw73_32). D:\Qt\5.x.x\static\mingwXX_32;
  5. 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
          
          





  6. qmake.conf;
  7. (! CMD! CMD! CMD!) MinGW. ( ) mingw.

    MinGW Qt 5.x.x (MinGW x.x.x 32-bit)

  8. 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.



    , :

  9. mingw32-make -k -j4





    , 4 , / , . -j4 4 .

  10. mingw32-make -k install





    D:\Qt\5.x.x\stati\mingwXX_32;

  11. Qt Creator:

    • -> -> Qt
    • -> D:\Qt\5..\static\mingw73_32\bin\qmake.exe ->
    • ->
    • : Qt static x32 ( )
    • : Desktop
    • :
    • : D:\Qt\5..\static
    • コンパイラ:

      a)Cの場合:Cの場合はMinGW xxx 32ビット

      b)C ++の場合:C ++の場合はMinGWxxx32ビット

    • Qtプロファイル:Qt static x32(プロファイルの追加時に指定したプロファイル名)
    • 適用-> OK


  12. 新しいキットでプロジェクトを再構築するだけです。


追加情報。私は持っています:



  • Qt 5.14.1
  • MinGW 7.3.0 32ビット(mingw73_32)
  • Python 3.8 x32
  • イチゴ-perl-5.30.2.1-32bi
  • Windows 10 Pro x64


飛行は正常です。



私はここから情報を取りました:






All Articles