1. 程式人生 > >Qt:Qt 5.* &vs2015 編譯靜態庫版本

Qt:Qt 5.* &vs2015 編譯靜態庫版本

簡介

靜態編譯qt5.6 、靜態編譯qt5.7、 靜態編譯qt5.8

安裝Qt

Qt官網下載Qt安裝包
這裡寫圖片描述
安裝Qt和原始碼,一定要勾選source選項
這裡寫圖片描述
新增bin到系統變數
這裡寫圖片描述

工具

需要python3和 perl、 vs2015 第三方工具,到官方下載安裝
這裡寫圖片描述

在命令列測試工具是否安裝成功
這裡寫圖片描述

configue

首先修改檔案C:\Qt\Qt5.6.2\5.6\Src\qtbase\mkspecs\common\msvc-desktop.conf 把MD替換為MT靜態編譯
這裡寫圖片描述

這裡寫圖片描述

然後上面開啟的終端cd命令跳到Qt原始碼目錄 ,輸入下面命令

5.6

configure -confirm
-license -opensource -platform win32-msvc2015 -debug-and-release -static -prefix "C:\qt\static-vs2015-qt" -qt-sql-sqlite -qt-sql-odbc -plugin-sql-sqlite -plugin-sql-odbc -qt-zlib -qt-libpng -qt-libjpeg -opengl desktop -target xp -qt-freetype -qml-debug -no-angle -nomake tests -nomake examples

5.8

configure -confirm
-license -opensource -platform win32-msvc2015 -debug-and-release -static -prefix "C:\qt\static-vs2015-qt" -qt-sqlite -qt-zlib -qt-libpng -qt-libjpeg -opengl desktop -qt-freetype -qml-debug -no-angle -nomake tests -nomake examples

5.8需要把-qt-sql-sqlite 改為-qt-sqlite ,從5.7.0開始原始碼裡configure已經去掉了-target xp這個選項的支援了

nmake

這裡寫圖片描述
有時候生成的pri檔案有問題(獲取cl版本時擷取的字串有問題),需要手動修改下
這裡寫圖片描述
這裡寫圖片描述

修改如下,如果pri檔案沒有報錯,就不用修改

CONFIG+= debug static rtti no_plugin_manifest directwrite qpa
host_build {
    QT_ARCH = i386
    QT_TARGET_ARCH = i386
} else {
    QT_ARCH = i386
}
QT_CONFIG += minimal-config small-config medium-config large-config full-config debug_and_release build_all release debug static zlib gif jpeg png freetype harfbuzz build_all accessibility opengl dbus audio-backend directwrite native-gestures qpa concurrent
#versioning 
QT_VERSION = 5.6.2
QT_MAJOR_VERSION = 5
QT_MINOR_VERSION = 6
QT_PATCH_VERSION = 2

QT_EDITION = OpenSource
QMAKE_TARGET_OS = xp
QT_DEFAULT_QPA_PLUGIN = qwindows
QT_CL_MAJOR_VERSION = 19
QT_CL_MINOR_VERSION = 00
QT_CL_PATCH_VERSION = 24210

編譯

nmake編譯

這裡寫圖片描述
編譯5.7和5.8時可能會遇到這個問題,把qtuiohandler.cpp檔案改為帶BOM的utf-8編碼就可以了

安裝

nmake install

配置Qt Creator

新增Qt版本,提示qmlscene未安裝警告,把以前的qmlscene.exe拷貝到靜態庫中的bin資料夾即可
這裡寫圖片描述
新增構建套件
這裡寫圖片描述

引用