Skip to content

Instantly share code, notes, and snippets.

@AllanZyne
Last active December 21, 2020 15:32
Show Gist options
  • Save AllanZyne/15f85914a40d9927fc9616eda61da21f to your computer and use it in GitHub Desktop.
Save AllanZyne/15f85914a40d9927fc9616eda61da21f to your computer and use it in GitHub Desktop.
Build Qt 5.6 for Windows XP with Qt Webkit (VS 2017)

编译 Qt 5.6.3 Windows XP with Qt Webkit (VS 2017)

准备工具

  • qt 5.6.3 的源码
  • qt webkit 的源码(从 github 上下载 5.6 分支,保存到 qt 源码的目录中)
  • python27
  • ruby24
  • win_flex_bison
  • jom
  • icu (5.8) 的源码并编译
  • openssl (1.0.2) 的源码并编译
    • perl、nasm

初始化环境变量

qtvars.bat

@echo off

@REM ********** INITIALIZE ENV FOR MSVC CL COMPILER **********

@SET PATH=C:\Windows;C:\Windows\system32

@SET OLDCD=%CD%
@CALL "C:\Program Files (x86)\Microsoft Visual Studio\2017\Community\VC\Auxiliary\Build\vcvars32.bat"
@cd /d %OLDCD%

@REM ********** UPDATE INCLUDE & LIB TO SUPPORT XP WIN SDK 7.1A **********
@SET PATH=C:\Program Files (x86)\Microsoft SDKs\Windows\v7.1A\Bin;%PATH%
@SET INCLUDE=%INCLUDE%C:\Program Files (x86)\Microsoft SDKs\Windows\v7.1A\Include;
@SET LIB=%LIB%C:\Program Files (x86)\Microsoft SDKs\Windows\v7.1A\Lib;
@SET CL=/D_CRT_SECURE_NO_WARNINGS;/D_USING_V120_SDK71_;%CL%

@REM ********** INCLUDE SDK **********
@SET PATH=D:\Qt\icu-58.2-vs2017\bin;D:\Qt\openssl-1.0.2n\dist\bin;D:\rzaba\qt\GLES_SDK\x86;%PATH%
@SET INCLUDE=D:\Qt\icu-58.2-vs2017\include;D:\rzaba\qt\GLES_SDK\include;D:\Qt\openssl-1.0.2n\dist\include;%INCLUDE%
@SET LIB=D:\Qt\icu-58.2-vs2017\lib;D:\rzaba\qt\GLES_SDK\x86;D:\Qt\openssl-1.0.2n\dist\lib;%LIB%

@REM ********** 3D PARTY BUILD TOOLS BINARIES: PUTTY, RUBY, PERL, GIT, PYTHON **********
@SET PATH=C:\Ruby24\bin;C:\Perl\bin;C:\Python27;C:\Program Files (x86)\SmartGit\git\cmd;%PATH%

@REM ********** SETUP QT QMAKE ENV **********
@SET QMAKESPEC=win32-msvc2015
@SET PATH=D:\Qt\win_flex_bison-latest;D:\Qt\src-5.6.3\qtbase\bin;D:\Qt\src-5.6.3\gnuwin32\bin;%PATH%

命令

查看帮助:

configure -confirm-license -platform win32-msvc2015 -opensource -help

配置命令(只编 release(带调试信息)、去掉 qml):

configure -confirm-license -platform win32-msvc2015 -opensource -prefix D:/Qt/Qt5.6.3-build -release -nomake examples -nomake tests -skip qtwebengine -skip qtdeclarative -skip qtsensors -skip qtmultimedia -opengl desktop -icu -no-dbus -no-style-windowsvista -no-style-fusion -no-qml-debug -force-debug-info

开始编译:

jom module-qtwebkit

在编译 qtwebkit 之前

@SET CL=/EHsc

可以去掉一个警告。但是在遇到 jsc.cpp 会报错,只好临时清掉 CL 的值

@SET CL=

编过这个文件后再把 CL 重设回来。(如果有更好的办法,求告知)

在结尾,会出现错误 ..\include\QtWebKitWidgets\QtWebKitWidgetsDepends(7): fatal error C1083: 无法打开包括文件: “QtWebKit/QtWebKit”: No such file or directory

cd qtwebkit
mkdir .git
perl D:\Qt\src-5.6.3\qtbase\bin\syncqt.pl Source -version 5.6.3

安装:

   jom module-qtwebkit-install_subtargets

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment