windows下使用mingw和msvc靜態編譯Qt5.15.xx

鬼谷子com發表於2021-01-18

windows下使用mingw和msvc靜態編譯Qt5.15.xx

  1. 下載並安裝相關依賴軟體

    一般來說下載這三個工具就可以,記得要設定環境變數,當然你要編譯MSVC版的安裝Visual Studio2017,並且安裝它。要編譯mingw版本需要已經安裝Qt版本。

  2. 下載Qt官方原始碼qt-everywhere-src-5.15.xx.zip (根據需要編譯的版本進行下載),連結如下

http://download.qt.io/official_releases/qt/5.15/

  1. 開始編譯:

    • msvc2017編譯

      1. 開啟vs2017命令列工具,裡面配置了vs的環境變數,這裡不能用windows自帶的cmd終端代替。image-20210117235423970

      2. 切換到Qt原始碼路徑,執行命令:

        image-20210118000101580

        configure.bat -static -prefix "D:\Qt\Qt5.15xx_msvc2017_static" -confirm-license -opensource  -debug-and-release -platform win32-msvc  -nomake examples -nomake tests  -plugin-sql-sqlite -plugin-sql-odbc -qt-zlib -qt-libpng -qt-libjpeg -opengl desktop -mp
        
        configure.bat 
         -static //指明是靜態編譯
         -prefix "D:\Qt\Qt5.15xx_msvc2017_static" //指明安裝的目錄
         -confirm-license -opensource  //指明是開源版本的qt
         -debug-and-release //指明需要debug版和release版,可以單獨選擇release版
         -platform win32-msvc  //指明使用msvc編譯
         -nomake examples -nomake tests  //不編譯樣例
         -plugin-sql-sqlite -plugin-sql-odbc -qt-zlib -qt-libpng -qt-libjpeg //可選外掛
         -opengl desktop 
         -mp //多核編譯
        

        生成makefile檔案之後就可以呼叫make編譯器進行編譯了,msvc版本的make編譯器是nmake。nmake是不支援多執行緒編譯的,單執行緒編譯的話時間長的令人髮指,推薦使用Qt在windows下專門的編譯器jom,QtCreator使用的就是jom編譯器,加上-j xx(電腦支援的執行緒數)爽歪歪。

        image-20210118001222029

        Qt自帶的jom編譯器路徑是 D:\Qt\Qt5.14.2\Tools\QtCreator\bin\jom.exe,如果不能識別jom命令請新增路徑到環境變數。如果是舊版本的Qt可能沒有帶jom,此時可以從Qt官網下載:

      3. 接下來執行 nmake & nmake install(使用jom的話用 jom -j xx &jom -j xx install代替)

      image-20210118000823503

      接下來就是漫長的等待,最後編譯好的Qt版本在 -prefix 設定的目錄下,本人16執行緒全開,make的時間是20多分鐘,但是install的時間很長,可能是沒加 -j 引數的原因?

    • mingw編譯

    1. 開啟Qt的mingw命令列工具,
      image-20210118002414865

    2. 切換到Qt原始碼路徑,執行命令:

      configure.bat -static -prefix "D:\Qt\Qt5.15xx_mingw_static" -confirm-license -opensource -debug-and-release -platform win32-g++ -nomake examples -nomake tests -plugin-sql-sqlite -plugin-sql-odbc -qt-zlib -qt-libpng -qt-libjpeg -opengl desktop -mp,這裡不截圖了,引數介紹同上,主要是修改編譯平臺win32-g++.

    3. 使用jom 編譯jom -j xx &jom -j xx install

    4. 等待ing,a few moments later... 一個嶄新的Qt靜態版本誕生了

    如何配置編譯好的版本到QtCreator網上的教程很多,這裡就不做搬運工了~

相關文章