1. 程式人生 > >VS2013 + QT5.7.0靜態編譯(使用MT、MTd模式)

VS2013 + QT5.7.0靜態編譯(使用MT、MTd模式)

本文假設您已成功安裝 qt-opensource-windows-x86-msvc2013_64-5.7.0.exe 和 qt-vs-addin-1.25.exe(均可以在官網下載到)

【步驟1】在計算機上安裝python庫和perl庫(因為後續的靜態編譯需要用到這兩種語言),可以在命令列敲擊“python”和“perl -v”檢查是否安裝成功。

【步驟2】下載qt-everyshere-opensource-src-5.7.0-beta.zip 解壓到 C:\FreqUsed\Qt\qt-everywhere-opensource-src-5.7.0-beta(按照自己習慣的路徑解壓)

【步驟3】開啟 C:\FreqUsed\Qt\qt-everywhere-opensource-src-5.7.0-beta\qtbase\mkspecs\common\msvc-desktop.conf

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

即將MD改成MT,MDd改成MTd。動態改成靜態

【步驟4】開啟Visual Studio Tools中的 VS2013 開發人員命令提示,cd進入 C:\FreqUsed\Qt\qt-everywhere-opensource-src-5.7.0-beta

輸入指令:

configure -confirm-license -opensource -platform win32-msvc2013 -debug-and-release -static -prefix “C:\FreqUsed\Qt-static-vs2013” -qt-sql-sqlite -qt-sql-odbc -plugin-sql-sqlite -plugin-sql-odbc -qt-zlib -qt-libpng -qt-libjpeg -opengl desktop -qt-freetype -no-qml-debug -no-angle -nomake tests -nomake examples

回車等待1分鐘左右

其中,”C:\FreqUsed\Qt-static-vs2013”是我接下來把靜態編譯版本qt的安裝目錄

(這一步真是血淋淋的教訓,我按照網上QT5.4.0的配置方法,區別為QT5.4.0配置程式碼最後有“-skip qtwebkit”。到了Qt5.7.0版本,這個qtwebkit早就被拿掉了,所以要去掉“-skip qtwebkit”。就因為這個,浪費了我一整天,時間就是金錢啊)

【步驟5】1分鐘之後,命令列會提醒你nmake,那麼我們鍵入nmake命令並回車,等待2至3個小時後,再輸入nmake install,便可以發現”C:\FreqUsed\Qt-static-vs2013”這個目錄正在安裝檔案,等帶10分鐘後,安裝完畢。

【Qt Creator下的配置】 在工具->選項中…新增QT Version和構建套件,然後建立工程即可。

【VS下Qt外掛的配置】網上的配置方法太過複雜,且成功率很低。讓我糾結了一個下午,突然靈光一現,下面是我的方法:

1、先利用Qt Creator建立一個static版本的工程,設計好介面之後,編譯成功。

2、將靜態編譯debug或release資料夾下的 “工程名_plugin_import.cpp”,複製到工程的main檔案同一目錄下

3、用VS的QT5開啟剛才建立的工程,qt setting設定為靜態版本

4、編譯成功

結束語:靜態編譯後的exe可執行檔案不再需要動態連結庫,所以只需要一個exe檔案就可以跑遍任何一臺電腦,還是蠻爽的。