事前準備
1.下載安裝Perl (https://www.activestate.com/activeperl/downloads)
2.下載安裝Python (https://www.python.org/downloads/)
3.已安裝Microsoft Visual Studio(最好是Professional版本)
4.下載"qt-everywhere-opensource-src-5.8.0" (http://download.qt.io/official_releases/qt/5.8/5.8.0/single/)


建立Static資料夾
C:\Qt\Static


將"qt-everywhere-opensource-src-5.8.0"解壓縮到C:\Qt\Static
會花上一些時間

編輯C:\Qt\Static\qt-everywhere-opensource-src-5.8.0\qtbase\mkspecs\common\msvc-desktop.conf
找到以下代碼,將MD改成MT
QMAKE_CFLAGS_RELEASE = -O2 -MD
QMAKE_CFLAGS_RELEASE_WITH_DEBUGINFO += -O2 -MD -Zi
QMAKE_CFLAGS_DEBUG = -Zi -MDd

像這樣
QMAKE_CFLAGS_RELEASE = -O2 -MT
QMAKE_CFLAGS_RELEASE_WITH_DEBUGINFO += -O2 -MT -Zi
QMAKE_CFLAGS_DEBUG = -Zi -MTd


開啟Developer Command Prompt for VS2015,用Administrator開啟


利用 Developer Command Prompt ,開啟C:\Qt\Static\qt-everywhere-opensource-src-5.8.0
cd C:\Qt\Static\qt-everywhere-opensource-src-5.8.0


執行以下指令
configure -static -debug-and-release -prefix "C:\Qt\Static\5.8.0" -platform win32-msvc2015 -qt-zlib -opensource -confirm-license -qt-pcre -qt-libpng -qt-libjpeg -qt-freetype -sql-odbc -sql-sqlite -skip qt3d -skip qttools -opengl desktop -make libs -nomake tools -skip qtdoc -skip qtwayland -skip qtwebview -skip qtwebengine -skip qtwebchannel -no-qml-debug -skip qtscript -no-icu -no-compile-examples -nomake examples -nomake tests

如果你用的Visual Studio是Express版的,請skip qtspeech,他會用到 Professional的檔案。
configure -static -debug-and-release -prefix "C:\Qt\Static\v5.8.0" -platform win32-msvc2015 -qt-zlib -opensource -confirm-license -qt-pcre -qt-libpng -qt-libjpeg -qt-freetype -sql-odbc -sql-sqlite -skip qt3d -skip qttools -skip qtspeech -opengl desktop -make libs -nomake tools -skip qtdoc -skip qtwayland -skip qtwebview -skip qtwebengine -skip qtwebchannel -no-qml-debug -skip qtscript -no-icu -no-compile-examples -nomake examples -nomake tests

我沒有專業版的MSVC,所以我也不確定,第一個指令會部會成功,如果失敗了,注意一下error message,把該功能或是模組取消掉。
你可以檢查qt-everywhere-opensource-src-5.8.0資料夾,裡面包含的資料夾是Qt模組,
-skip
取消

取消功能則是把-qt-xxx,變成-no-xxxx
EX:
-qt-zlib

-no-zlib


這個動作會花上很多時間,我bulid了10個多小時
nmake

如果遇到編譯字串錯誤代碼,可以先下
set _CL_=/utf-8
再下
nmake


nmake install

成功後,會在C:\Qt\Static多出5.8.0資料夾

打開Qt Creator的Tools / Options

點選Add


選擇C:\Qt\Static\5.8.0\bin\qmake.exe檔案


命名version name,記得按下Apply


點選Kits


注意以下這幾點,按下OK

打開一個專案,點選Projects裡的qt static 5.8.0


接下來就能在Run裡面看到了


注意!!!
當你編譯好Qt庫後,你想更換路徑,但你發現Qt Creator 會出現
"qt version is not properly installed please run make install"
那是因為,當你configure prefix路徑時,已經固定了,所以當你將qmake移到其他位置或是電腦使用時,會出現上面的錯誤。
此時可以在qmake檔案路徑下,新增"qt.conf",內容如下

[paths]
Prefix=C:/Qt/Static_x86/5.8.0/
紅字部分為新的prefix路徑位置。

成功建立執行檔後,把檔案放到其他電腦執行時,會出現缺少msvcp140.dll、vcruntime140.dll。
此時我複製這兩個檔案到執行檔目錄時,又出現(0xc000007b)的錯誤,上網查才發現,是我複製到錯誤的檔案。

我一開始複製的是MSVC安裝路徑下的msvcp140.dll、vcruntime140.dll,當我貼上C:\Windows\System32\路徑下的檔案時,就可以正常跑了。


參考資料