Qt5.8.0在msvc2015方式下的靜態編譯過程記錄
Qt 5.8.0在msvc2015方式下的靜態編譯記錄
本次記錄把Qt5.8.0原始碼在msvc2015community版下靜態編譯的過程。
- 1、準備工作
- 2、配置Qt的Makefile檔案
- 3、編譯Qt庫
- 4、配置Qt庫
- 5、配置Qt Creator
第一步:準備工作
- 下載Qty庫原始碼
在Qt官網上下載相應版本的Qt庫原始碼。因為電腦上安裝的是VS2015community,所以下載名為For Windows users as a single zip file (565 MB) (Info)
的檔案。
- 下載Perl
- 下載Ruby
注意:
1.Ruby要選擇安裝包版本
2.安裝Python、Perl、Ruby時注意勾選新增到環境變數PATH
3.檢測是否安裝成功:開啟CMD
輸入python
輸入perl -v
輸入ruby -v
第二步:配置Qt的Makefile檔案
1) 下載的Qt原始碼解壓到磁碟根目錄:如G:\
注意:如果原始碼解壓路徑過長,將導致編譯qtimageformats時出現無法開啟編譯器生成的檔案“”:Invalid argument的錯誤。
我的解壓路徑為:G:\qt_src_5_8_0
2) 進入解壓後的Qt原始碼資料夾下的 G:\qt_src_5_8_0\qtbase\mkspecs
資料夾下。
3) 再根據你安裝的Qt版本進入相應的資料夾下,我這裡是win32-msvc2015
。
4) 開啟資料夾下的qmake.conf
5) 開啟對應的檔案後,找到以下編譯標誌:
QMAKE_CFLAGS_RELEASE = -O2 -MD
QMAKE_CFLAGS_RELEASE_WITH_DEBUGINFO += -O2 -MD -Zi
QMAKE_CFLAGS_DEBUG = -Zi -MDd
將其中的MD全部修改為MT(就是將動態編譯修改為靜態編譯):
QMAKE_CFLAGS_RELEASE = -O2 -MT
QMAKE_CFLAGS_RELEASE_WITH_DEBUGINFO += -O2 -MT -Zi
QMAKE_CFLAGS_DEBUG = -Zi -MTd
注意:
Qt5.8.0有一個CPP檔案
qtbase\src\plugins\generic\tuiotouch\qtuiohandler.cpp
包含了非ASCII字元,需要另存一個帶BOM的UTF-8編碼檔案,替換原檔案。否則編譯會報錯。
6) 開啟VS自帶的命令提示符,在開始選單中找VS2015的資料夾。
7) 在命令提示符中進入Qt原始碼目錄G:\qt_src_5_8_0
。
8) 輸入Configure命令:
configure -confirm-license -opensource -debug-and-release -static -force-debug-info -prefix "G:\msvc2015_static" -qt-sqlite -qt-pcre -qt-zlib -qt-libpng -qt-libjpeg -opengl desktop -qt-freetype -nomake tests -nomake examples
其中"G:\msvc2015_static"
代表編譯完後的安裝目錄,此目錄不需要事先存在。這個執行不會花費很久時間。沒有報錯就下一步。
第三步:編譯Qt庫
1) 執行nmake命令。
注:此步大約會進行兩到三個小時。
2) nmake執行完畢之後,再輸入nmake install安裝。這個安裝實際上是一連串的檔案複製。
注:此步大約會進行二十到三十分鐘。
3) 執行完成後沒有報錯說明安裝成功,G:\msvc2015_static
資料夾中即為生成的Qt靜態庫。
第四步:配置Qt庫
(未完待續……)