获取源码
清华镜像: https://mirrors.tuna.tsinghua.edu.cn/qt/archive/qt/5.15/5.15.2/single/qt-everywhere-src-5.15.2.zip
编译工具下载/COMPILER DOWNLOAD
打开源码目录下的README文件,查看当前版本Qt要求的Windows环境下编译需要安装的工具:
Windows:
--------
Open a command prompt.
Ensure that the following tools can be found in the path:
* Supported compiler (Visual Studio 2012 or later,
MinGW-builds gcc 4.9 or later)
* Perl version 5.12 or later [http://www.activestate.com/activeperl/]
* Python version 2.7 or later [http://www.activestate.com/activepython/]
* Ruby version 1.9.3 or later [http://rubyinstaller.org/]
编译环境选择:MINGW/MSVC
在Windows上,有两个预构建环境可供选择:一个是 MinGW ,另一个是Microsoft Visual Studio(MSVC)。这两个环境不兼容,无法混合。你必须选择一个。
这两者的区别如下:
当你的项目使用MinGW编译的使用,想要用一个MSVC编译生成的库时就会有问题。使用MinGW编译项目的时候,所使用的Lib也要是MinGW编译的。如果你只是开发Window平台的软件时,最好用Qt MSVC组合,这样可以使用大量的第三方lib,还有很多的构建指令,毕竟window上MSVC才是王道。
我选择MSVC,打开安装VS时自带安装的MSCV:x64 Native Tools Command Prompt for VS 2019
**********************************************************************
** Visual Studio 2019 Developer Command Prompt v16.4.5
** Copyright (c) 2019 Microsoft Corporation
**********************************************************************
[vcvarsall.bat] Environment initialized for: 'x64'
C:\Program Files (x86)\Microsoft Visual Studio\2019\Community>
默认编译的结果是64位的Qt
如果你想编译32位版本的qt,可以选择x86 Native Tools Command Prompt for VS 2019
警告:不要使用 Developer Command Prompt for VS 2019
如果你想在linux系统中进行Qt的编译工作,参考这个问答:c++ - How to compile Qt 5 under Windows or Linux, 32 or 64 bit, static or dynamic on Visual Studio or g++ - Stack Overflow
编译
在D盘新建一个目录用来存放编译好的内容:D:\qt
在x64 Native Tools Command Prompt for VS 2019
的终端进入Qt源代码目录:
C:\Users\peter\Downloads>cd qt-everywhere-src-5.14.1
C:\Users\peter\Downloads\qt-everywhere-src-5.14.1>
修改源码里的QTBASE\MKSPECS\COMMON\MSVC-DESKTOP.CONF
文件
修改-MD为-MT
修改前:
QMAKE_CFLAGS_RELEASE = $$QMAKE_CFLAGS_OPTIMIZE -MD
QMAKE_CFLAGS_RELEASE_WITH_DEBUGINFO += $$QMAKE_CFLAGS_OPTIMIZE -Zi -MD
QMAKE_CFLAGS_DEBUG = -Zi -MDd
修改后:
QMAKE_CFLAGS_RELEASE = $$QMAKE_CFLAGS_OPTIMIZE -MT
QMAKE_CFLAGS_RELEASE_WITH_DEBUGINFO += $$QMAKE_CFLAGS_OPTIMIZE -Zi -MT
QMAKE_CFLAGS_DEBUG = -Zi -MTd
D的意思是动态编译(dynamic link),T的意思是静态编译(static link)。
配置CONFIG文件:
配置命令如下:
configure.bat -prefix D:\QT\qt\5.15.2\msvc2019_32_static -confirm-license -opensource -debug-and-release -static -static-runtime -no-feature-d3d12 -platform win32-msvc -mp -nomake tests -nomake examples -nomake tools -gui -widgets -plugin-sql-sqlite
具体含义如下:
configure.bat
-static #指明是静态编译
-prefix "D:\qt" #指明安装的目录
-confirm-license -opensource #指明是开源版本的qt
-debug-and-release #指明需要debug版和release版,可以单独选择release版
-platform win32-msvc #指明使用msvc编译,这里的win32并不指32位
-nomake examples -nomake tests #不编译样例
-plugin-sql-sqlite -plugin-sql-odbc -qt-zlib -qt-libpng -qt-libjpeg #可选插件
-opengl desktop #用系统自带的opengl
-mp #多核编译
MAKE
上面提到过在Windows上,有两个预构建环境可供选择:一个是MinGW,另一个是Microsoft Visual Studio(MSVC)。
我选择的是msvc环境,使用命令nmake即可进行编译。
nmake
新版的MSVC可以进行多线程编译,旧版本的MSVC自带的nmake没有多线程编译功能,有一个替代功能的软件jom可以进行nmake的多线程编译。
jom的下载地址:Jom - Qt Wiki
在刚才的终端中运行命令:
D:/jom_1_1_3/jom.exe
MAKE INSTALL
使用nmake单线程install:
nmake install
添加到QT CREATOR
添加QT VERSIONS
注:若新增qmake.exe前出现黄色感叹号,可复制其它版本bin目录下的qmlscene.exe到该静态编译版本的bin目录下即可。
新建构建套件
新建构建套件,Qt版本选择刚添加的静态版,记得编译器选自己编译时用的编译器。