凡式原創,轉載請注明
- 2018-03-05
準備:
1、源代碼&編譯器
- qt-everywhere-src-5.10.1.tar.xz 5.10.1
- Visual Studio Enterprise 2017 15.5.6
2、編譯環境(add to path)
編譯:
1、mkspecs
將Qt源代碼路徑下面 qtbase\mkspecs\common\msvc-desktop.conf 的以下幾行:
QMAKE_CFLAGS_RELEASE = $$QMAKE_CFLAGS_OPTIMIZE -MD
QMAKE_CFLAGS_RELEASE_WITH_DEBUGINFO += $$QMAKE_CFLAGS_OPTIMIZE -MD -Zi
QMAKE_CFLAGS_DEBUG = -Zi -MDd
修改為:
QMAKE_CFLAGS_RELEASE = $$QMAKE_CFLAGS_OPTIMIZE -MT
QMAKE_CFLAGS_RELEASE_WITH_DEBUGINFO += $$QMAKE_CFLAGS_OPTIMIZE -MT -Zi
QMAKE_CFLAGS_DEBUG = -Zi -MTd
2、configure
開始 -> Visual Studio 2017 -> x86 Native Tools Command Prompt for VS 2017 或者 x64 Native Tools Command Prompt for VS 2017
cd /d D:\src\qt-everywhere-src-5.10.1
mkdir build
cd /d build
D:\src\qt-everywhere-src-5.10.1\build > D:\src\qt-everywhere-src-5.10.1\configure.bat -h
D:\src\qt-everywhere-src-5.10.1\build > configure.bat -confirm-license -opensource -release -static -force-asserts -platform win32-msvc -prefix C:\Qt\Qt5.10.1-vs2017-static -static-runtime -mp -silent -opengl desktop -qt-sqlite -qt-pcre -qt-zlib -qt-freetype -qt-harfbuzz -qt-libpng -qt-libjpeg -nomake examples -nomake tests
具體配置詳情如下:
-confirm-license -opensource
-release 版本
-static 靜態
-force-asserts
-platform win32-msvc 版本
-static-runtime
-mp 多線程編譯
-silent 不顯示編譯時多余的大量信息
-opengl desktop 選擇desktop而不是dynamic,避免qcustomplot無法使用opengl
-qt-sqlite 三個選項[system/qt/no]選擇源碼自帶
-qt-pcre 三個選項[system/qt/no]選擇源碼自帶
-qt-zlib 三個選項[system/qt/no]選擇源碼自帶
-qt-freetype 三個選項[system/qt/no]選擇源碼自帶
-qt-harfbuzz 三個選項[system/qt/no]選擇源碼自帶
-qt-libpng 三個選項[system/qt/no]選擇源碼自帶
-qt-libjpeg 三個選項[system/qt/no]選擇源碼自帶
-nomake examples 不編譯例子
-nomake tests 不編譯測試
3、nmake & nmake install
nmake
nmake install
3、jom
( 優化并行編譯的工具替代nmake;nmake在configure時也可以指定-mp參數進行多線程編譯 )
jom -j8
jom install
4、qt.conf
[問題]:添加靜態編譯的Qt版本,工具->選項->構建和運行->Qt Versions->添加->,此時出現錯誤
[錯誤]:qt沒有被正確的安裝,請運行make install
[解決辦法]:在qmake.exe同一文件夾下,創建一個qt.conf文件(必須為ANSI格式)
[paths]
Prefix = ..