Windows环境Qt5.11.2-win32版编译小记

有困难要上,没有困难,制造困难也。。。也要上?

Posted by cj on September 22, 2018

2018年10月14日01:33:55 本文行不通,我上次是的成功是片面的、偶然的,我自己后来都无法再次成功编译QtWebengine模块,官方博客评论区一片哀嚎跪求msvc2017-win32版本QtWebengine模块的筒子。。。想要用在32bit环境下使用QtWebengine,还是回退到Qt5.10.1吧。Win32真是江河日下,明日黄花?

最近遇到几次32位win7环境QWebEngineView显示网页崩溃、无法显示网页的问题,实在不好解决;再者之前一直用的Qt5.7-win32版没更新过,趁这个机会更新下Qt看能不能解决。

一、官方下载

从官网下载qt-opensource-windows-x86-5.11.2.exe,安装后有vs2015/vs2015x64/vs2017x64,就是没有vs2017-win32版本。产品是要能在32位win7运行的,so。。。

二、直接编译

打开 x86 Native Tools Command Prompt for VS 2017 命令行工具,CD到Src文件夹内,运行configure -debug-and-release -nomake examples -nomake tests -opensourcenmake, nmake install 命令,结果很好,生成了所需要的各种dll、lib,但是缺少了QtWebEngine/QtWebEngineWidgets等几个重要的文件。搜索得知想要使用QtWebEngine/QtWebEngineWidgets模块是需要做其他设置才能编译的。

三、源码编译

参考官方文档Building Qt 5 from Git

3.1 准备

如果已经安装了Python3,需要手动更改python3的python.exe为python3.exe,更改scripts/pip.exe为pip.exe.bk,以后看心情可以改回来。

  • 下载jom,功能与nmake相同,但可以利用多核CPU加快编译速度。

3.2 编译

依然打开x86 Native Tools Command Prompt for VS 2017 命令行工具,CD到目标文件夹路径E:\Qt\source。具体流程不赘述,看BAT脚本即可。

REM 下载qt源码到qt5.11.2
CALL git clone https://code.qt.io/qt/qt5.git qt5.11.2
CALL cd qt5.11.2
CALL git checkout 5.11

REM 要编译QtWebEngine模块则必备
CALL perl init-repository

REM 创建编译目标文件夹
CALL cd ..
CALL mkdir qt5.11.2_build && cd qt5.11.2_build

REM 设置环境变量
SET _ROOT=E:\Qt\source\qt5.11.2
SET PATH=%_ROOT%\qtbase\bin;%_ROOT%\gnuwin32\bin;%_ROOT%\qtrepotools\bin;%PATH%
SET QTDIR=%_ROOT%\qt5.11.2\qtbase
SET _ROOT=

REM 配置Qt
..\qt5.11.2\configure -developer-build -confirm-license -debug-and-release -opensource -opengl desktop -nomake examples -nomake tests

REM 使用jom编译,开启4个编译线程(CPU有几个核心就开几个)
jom /J 4

REM 安装。默认目标路径为qtbase
jom install

静态编译

REM 设置环境变量
SET _ROOT=C:\Qt\Qt5.11.2\5.11.2\Src
SET PATH=%_ROOT%\qtbase\bin;%_ROOT%\gnuwin32\bin;%_ROOT%\qtrepotools\bin;%PATH%
SET _ROOT=

REM 配置Qt
..\Src\configure.bat -prefix C:\Qt\Qt5.11.2\5.11.2\qt5.11.2_msvc2017_win32_static -platform win32-msvc -static -static-runtime -silent -developer-build -confirm-license -debug-and-release -opensource -opengl desktop -accessibility -sql-odbc -sql-sqlite -qt-zlib -qt-pcre -qt-libpng -qt-libjpeg -qt-freetype -qt-harfbuzz -nomake examples -nomake tests 

PAUSE

REM 使用jom编译,开启8个编译线程(CPU有几个核心就开几个)
jom /J 4

REM 安装。默认目标路径为qtbase或-prefix
jom install

静态编译不支持QtWebEngine模块:

Static builds of QtWebEngine aren’t supported. QtWebEngine will not be built.

Reference