Qt5.8 在windows下mingw靜態編譯


官方對編譯一些條件介紹:https://doc.qt.io/qt-5/windows-requirements.html

在默認情況下,用QtCreator編譯程序時,使用的是動態編譯。編譯好的程序在運行時需要另外加上相應的Qt庫文件,一大堆dll文件。如果想將生成的程序連同所需要的庫一起完整地打包成一個可執行程序,那就需要使用靜態編譯。

在win7 x64 靜態編譯制作過程如下:

1. 安裝Qt,全部勾選安裝.   qt-opensource-windows-x86-mingw530-5.8.0.exe

2. 安裝Perl, 下載地址:https://www.activestate.com/activeperl/downloads

  安裝目錄:D:\ProgramFiles\Perl64

  環境變量安裝過程自動添加的,如果沒有添加,手動添加: 

    D:\ProgramFiles\Perl64\site\bin;

    D:\ProgramFiles\Perl64\bin;

3. 安裝Python,Windows x86 executable installer 下載地址: https://www.python.org/downloads/

    安裝過程記得勾選添加PATH環境變量。

    安裝目錄:D:\ProgramFiles\Python36-32

   環境變量安裝過程自動添加的,如果沒有添加,手動添加: 

    D:\ProgramFiles\Python36-32\Scripts\;

    D:\ProgramFiles\Python36-32\;

4.打開Qt 5.8 for Desktop (MinGW 5.3.0 32 bit)

     

    4.1 輸入以下命令檢查gcc編譯器配置是否正確

          gcc -v

    4.2  輸入以下命令檢查perl解釋器配置是否正確

           perl -v

    4.3 輸入以下命令檢查python配置是否正確

          python

      按ctrl+z回車,退出python

5.在D:\ProgramFiles\Qt\Qt580\5.8新建一個文件夾mingw53_32_static,

   

   切換到Qt的源碼目錄

   cd D:\ProgramFiles\Qt\Qt580\5.8\Src  

   運行命令:    

configure.bat -confirm-license -opensource -platform win32-g++ -debug-and-release -static -prefix "D:\ProgramFiles\Qt\Qt580\5.8\mingw53_32_static" -qt-sqlite -qt-zlib -qt-libjpeg -qt-libpng -qt-xcb -qt-xkbcommon -qt-freetype -qt-pcre -qt-harfbuzz -opengl desktop -no-qml-debug -no-angle -nomake tests -nomake examples -skip qtwebengine -skip qtwebview -skip qt3d


 注:這里配置的時候,跳過了qtwebengine、qtwebview、qt3d,如果需要這些模塊可以去掉skip

 

6.編譯(大概需要3小時左右)

  mingw32-make -j2

   注:本處為2個線程編譯,電腦好的可以開更多的線程,編譯速度也更快

7.安裝(需要30分鍾左右,硬盤好的話會快點)

    mingw32-make install

8.新增靜態編譯

    打開Qt Creator -> 工具 -> 選項 -> 構建和運行 -> Qt Versions

     添加版本后,點擊應用。

   

   

    構建套件:克隆一個,修改,注意Qt版本一定要記得選對。修改后,點擊應用

  

 

9.配置編譯器

   記事本打開D:\ProgramFiles\Qt\Qt580\5.8\mingw53_32_static\mkspecs\win32-g++\qmake.conf

   添加 一行QMAKE_LFLAGS = -static,修改 QMAKE_LFLAGS_DLL其值為-static

 

  

 10.新建工程選擇 靜態編譯套件,編譯出來就可以直接運行exe程序了。編譯過程很慢,發布的時候最好選用release的,release的程序體積比debug小很多。

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM