准备前的工作:
- 下载源码:https://download.qt.io/archive/qt/5.15/5.15.2/single/
- 下载编译配套工具
打开源码 找到readme 文件查看相关的工具信息如下,并下载安装 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/]
-
开始编译前的工作准备
-
选择编译器
在Windows上,有两个预构建环境可供选择:一个是 MinGW ,另一个是Microsoft Visual Studio(MSVC)。这两个环境不兼容,无法混合。你必须选择一个。
我选择MSVC,打开安装VS时自带安装的MSCV:
x64 Native Tools Command Prompt for VS 2019
在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
默认编译的结果是64位的Qt
如果你想编译32位版本的qt,可以选择
x86 Native Tools Command Prompt for VS 2019
警告:不要使用 Developer Command Prompt for VS 2019
- 配置配置文件
-
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)。 这一步官方教程没有要求,但其他人的很多教程里都有写,我就加上了
2.配置config文件:
配置命令如下:
configure.bat -static -prefix "D:\qt" -confirm-license -opensource -debug-and-release -platform win32-msvc -nomake examples -nomake tests -plugin-sql-sqlite -plugin-sql-odbc -qt-zlib -qt-libpng -qt-libjpeg -opengl desktop -mp
具体含义如下:
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 #多核编译
C:\Users\peter\Downloads\qt-everywhere-src-5.15.0>configure.bat -static -prefix "D:\qt" -confirm-license -opensource -debug-and-release -platform win32-msvc -nomake examples -nomake tests -plugin-sql-sqlite -plugin-sql-odbc -qt-zlib -qt-libpng -qt-libjpeg -opengl desktop -mp + cd qtbase + C:\Users\peter\Downloads\qt-everywhere-src-5.15.0\qtbase\configure.bat -top-level -static -prefix "D:\qt" -confirm-license -opensource -debug-and-release -platform win32-msvc -nomake examples -nomake tests -plugin-sql-sqlite -plugin-sql-odbc -qt-zlib -qt-libpng -qt-libjpeg -opengl desktop -mp Notice: re-mapping requested qmake spec to unified 'win32-msvc'. Bootstrapping qmake ... .... Qt is now configured for building. Just run 'nmake'. Once everything is built, you must run 'nmake install'. Qt will be installed into 'D:\qt'. Prior to reconfiguration, make sure you remove any leftovers from the previous build.
3.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
我的CPU是
i7-6700HQ
,4核心8线程,CPU100%运行,花费了大约1个小时。make完成后源码和编译后的共有
26G
4.make install
使用nmake单线程install:
nmake install
安装完成后,QT的文件夹有4G
-
-