相較於自己編譯來取得 static 版本的 QT ,直接使用 MSYS2來安裝有很多好處:
- 省時,除非你用怪物級 CPU 來進行編譯,不然編譯 QT 都要耗費很長一段時間。
- 更新方便,自己編譯 QT 要更新就只能下載原始碼再重新編譯。
- 不用耗費心思處理 Error,自己編譯最大的坑就是老是編不過,而且可能的原因很多(編譯工具版本不對、不支援 mingw、不支援 static 等等),處理起來吃力不討好。
如果還是想要自己嘗試編譯,可以參考 QT 5.15.1 Mingw static 64bits 靜態編譯。
安裝
這裡假設你已經安裝好 MSYS2,還沒有的可以先看 MSYS2 簡單教學。
開啟你的 MSYS2
要安裝64位元的輸入
pacman -S --needed mingw-w64-x86_64-qt5-static mingw-w64-x86_64-qt-creator mingw-w64-x86_64-clang mingw-w64-x86_64-gdb mingw-w64-x86_64-cmake
要安裝32位元的輸入
pacman -S --needed mingw-w64-i686-qt5-static mingw-w64-i686-qt-creator mingw-w64-i686-clang mingw-w64-i686-gdb mingw-w64-i686-cmake
設定 QT Creator
安裝好後通常 QT Creator 的自動偵測都已經設定好了,如果還沒有的話請按照以下步驟進行。
32位元的開啟 mingw32.exe 64 位元的開啟 mingw64.exe 輸入
qtcreator
(接下來的設定值都已64位元為例)
工具 -> 選項
新增編譯器
Kits -> compilers -> 新增 -> GCC -> C
名稱: 自訂
編譯器路徑: C:\msys64\mingw64\bin\gcc.exe
Kits -> compilers -> 新增 -> GCC -> C++
名稱: 自訂
編譯器路徑: C:\msys64\mingw64\bin\g++.exe
設定好按右下角的 應用
新增 Debugger (可選)
不建議靜態編譯 debugger 版本的 QT ,非常耗時而且產生的執行檔又非常大。要 debugger 功能的話可以先用 dynamic 編譯,等到要發布時在用 static 編譯 release。
Kits -> Debuggers -> Add
Name: 自訂
Path: C:\msys64\mingw64\bin\gdb.exe
設定好了之後按右下角的 應用
設定 qmake
Kits -> Qt Versions -> 新增
選擇 C:\msys64\mingw64\qt5-static\bin\qmake.exe
設定好後按右下角的 應用
設定 Kits
Kits -> Kits -> Add
名稱: 自訂
Compiler C: 選擇剛剛新增的 GCC
Compiler C++: 選擇剛剛新增的 G++
Debugger(可選): 選擇剛剛新增的 gdb
Qt Version: 選擇剛剛新增的 qmake
設定好記得按 確定
如此一來就全部完成了。