我正在尝试构建Qt5.5,以便能够在Windows XP上运行QtWebEngine。下面是我设置环境的bat文件:
REM Set up \Microsoft Visual Studio 2013, where <arch> is \c amd64, \c x86, etc.
CALL "C:\Program Files (x86)\Microsoft Visual Studio 12.0\VC\vcvarsall.bat" x86
SET _ROOT=%CD%
SET PATH=%_ROOT%\qtbase\bin;C:\Perl\bin;%_ROOT%\gnuwin32\bin;C:\devtools\Bitnami\rubystack-2.0.0-26\ruby\bin;C:\Python27;%PATH%
REM Uncomment the below line when using a git checkout of the source repository
REM SET PATH=%_ROOT%\qtrepotools\bin;%PATH%
SET QMAKESPEC=win32-msvc2013
SET _ROOT=用于配置构建的bat文件
configure -debug-and-release -nomake examples -opensource -nomake tests -target xp -prefix c:\qt5\5.5\msvc2013-winxp构建成功,但我无法使用QtWebEngine运行任何示例

是否可以为WinXP目标构建QtWebEngine,或者它与WinXP不兼容?
发布于 2015-09-22 16:28:47
适用于Windows XP的Qt WebEngine 5.5.0兼容性构建步骤
官方版本的问题
Qt 5.5.0正式发布的qwebengine模块与windows XP应用程序不兼容,即使您强制使用与XP兼容的编译/链接设置/标志( still可能仍然不兼容)项目二进制文件,并且您可以在XP下执行您的exe二进制文件,您无论如何也不能使用qwebengine模块-只是因为QtWebEnbineProcess.exe被构建为Windows XP的无效EXE。
为了使Qt WebEngine 5.5.0能够在winXP上运行,你必须用额外的选项方式重建Qt模块(正如前面所说的,Qt发行版根本不兼容,你必须构建一个新的)。在Windows QtWebEngine只能在Visual Studio2013中构建的情况下,无法在另一个版本的Visual Studio中构建chromium代码。通常情况下,Windows下的Qt和choose可以使用OpenGL或/和ANGLE项目(使用Direc3D9Ex或Direct3D11)对硬件图形操作的支持来构建,如果你为WinXP构建,你没有选择,你必须使用OpenGL(如果你有选择,这是最糟糕的选择),因为Direct3D9Ex/Direct3D11只能从Vista+安装。因此,请确保您已为运行程序计算机安装了更新的图形驱动程序,因为用于OpenGL的显卡的现有XP驱动程序将非常过时,可能无法有效工作。
问题发生
任何问题都是因为默认的Visual C++ 2013应用程序编译与XP(C运行时和EXE子系统)不兼容而发生的,但您仍然可以在Visual C++ 2013中更改和使用与WinXP兼容的运行时,如下所述:
http://blogs.msdn.com/b/vcblog/archive/2012/10/08/windows-xp-targeting-with-c-in-visual-studio-2012.aspx
因此,基本上您必须添加Windows SDK7.1A路径以包含、库和二进制文件,为Qt和or的每次cl编译器执行传递/D_USING_V120_SDK71_,并为链接器调用传递/SUBSYSTEM:WINDOWS,5.01或/SUBSYSTEM:CONSOLE,5.01,同时构建您的项目和QtWebEngineProcess.exe,不是吗?)
构建需求:
5.5.0源代码-解包到OpenGL
(我不能粘贴更多的链接,因为我没有2分的声誉,OMG!:D)
构建过程
首先阅读这个:http://doc.qt.io/qt-5/windows-building.html,我们必须像这样做,但需要更多的步骤才能与XP兼容。
现在,如果源代码被解压并安装了所有内容,那么创建qt5vars.cmd,在我的例子中是这样的:
************************************************************************
REM ********** INITIALIZE ENV FOR MSVC 2013 CL COMPILER **********
SET PATH=C:\Windows;C:\Windows\system32
CALL "C:\Program Files (x86)\Microsoft Visual Studio 12.0\VC\vcvarsall.bat" x86
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=C:\Program Files (x86)\Microsoft SDKs\Windows\v7.1A\Include;%INCLUDE%
SET LIB=C:\Program Files (x86)\Microsoft SDKs\Windows\v7.1A\Lib;%LIB%
SET CL=/D_USING_V120_SDK71_;%CL%
REM ********** INCLUDE OPENGL DESKTOP GLES SDK **********
SET PATH=D:\rzaba\qt\GLES_SDK\x86;%PATH%
SET INCLUDE=D:\rzaba\qt\GLES_SDK\include;%INCLUDE%
SET LIB=D:\rzaba\qt\GLES_SDK\x86;%LIB%
REM ********** 3D PARTY BUILD TOOLS BINARIES: PUTTY, RUBY, PERL, GIT, PYTHON **********
SET PATH=D:\putty;D:\Ruby22\bin;D:\Perl\bin;D:\Git;D:\Git\bin;D:\Git\cmd;D:\Python27;%PATH%
REM ********** SETUP QT QMAKE ENV **********
SET QMAKESPEC=win32-msvc2013
SET PATH=D:\rzaba\qt\src-5.5.0\qtbase\bin;D:\rzaba\qt\src-5.5.0\gnuwin32\bin;%PATH%
************************************************************************通常,脚本为构建配置PATH、INCLUDE、LIB环境变量。在CL环境变量可以强制CL编译器设置,这是我们定义V120_XP平台用法的主要地方。
现在,在开始构建之前,您必须编辑源代码中的一些文件:
如果你有cl编译器标志,你必须删除'/WX‘标志,因为它会导致sdk7.1的编译失败。"if ():“
win32:{
QMAKE_CXXFLAGS += /D_USING_V120_SDK71
QMAKE_LFLAGS_CONSOLE += /SUBSYSTEM:CONSOLE,5.1
QMAKE_LFLAGS_WINDOWS += /SUBSYSTEM:WINDOWS,5.1
}
您还应该将其添加到您的项目中。这将生成与XP兼容的QtWebEngineProcess.exe文件。如果没有此选项,Visual C++ 2013将为winXP生成无效的EXE文件。
如果您现在打开命令行并调用此脚本,则必须cd进入qt源目录并调用configure,这是我的配置:
configure -prefix d:您的安装路径在那里-确认-license -target xp -opensource -opengl桌面-调试并发布-nomake示例-nomake测试-无警告-是错误
所以我想要构建、调试和发布。如果一切都设置正确,您应该会看到一些编译过程,并为qt模块创建Makefiles。在调用nmake之后,编译需要几个小时,nmake install将复制/安装创建的库作为前缀。祝好运
请记住,图形设备必须支持OpenGL ES 2.0,否则在创建QWebView后,您的应用程序将被OpenGL驱动程序崩溃,或者窗口图形用户界面变黑。如果您想在旧机器上运行您应用程序,您可以构建Mesa OpenGL软件渲染器(我这样做了,性能非常慢,每个刷新窗口的图形用户界面内容几秒钟,但它可以工作),并使用它代替硬件驱动程序。
发布于 2015-08-31 21:50:58
您需要使用Visual Studio 2013中的编译器,但来自支持Windows XP (即7.1A)的Windows SDK的头文件/库:
"C:\Program Files (x86)\Microsoft Visual Studio 12.0\VC\vcvarsall.bat" x86
set INCLUDE=C:\Program Files (x86)\Microsoft SDKs\Windows\v7.1A\Include;%INCLUDE%
set LIB=C:\Program Files (x86)\Microsoft SDKs\Windows\v7.1A\lib;%LIB%
set CL=/D_USING_V110_SDK71_但请注意,QtWebEngine需要一个有效的Qt快速堆栈(甚至是QtWebEngineWidgets!),这反过来又需要OpenGL。由于现有的Windows几乎不支持OpenGL,而ANGLE ( DirectX包装器)在Windows上也不起作用,你需要确保安装了一个像样的第三方OpenGL驱动程序,或者退回到一个软件opengl32.dll (例如来自mesa)。如果你有Qt许可证,你也可以依赖Qt Quick 2d渲染器。
发布于 2015-11-02 12:59:59
只需使用vs2013打开qtwebengine\src\process\process.pro,修改为"Visual Studio2013- Windows XP (v120_xp)“并重新构建QtWebEngineProcess.exe
https://stackoverflow.com/questions/31678657
复制相似问题