求助:2023年Windows7虚拟机搭建Qt5.15编译环境的可行方案
解决方案:在Windows 7上搭建Qt5.15+QtWebEngine编译环境(含CI复用流程)
一、解决Visual Studio 2019安装问题(证书过期+安装包缺失)
1. 修复证书过期问题
- 从可运行VS2019的x86 Win7+IE11镜像导出证书:
- 打开镜像中的
certmgr.msc,展开「受信任的根证书颁发机构」→「证书」 - 找到「Microsoft Code Signing PCA 2011」证书,右键选择「所有任务」→「导出」
- 按向导选择DER编码二进制格式,保存为
.cer文件 - 在你的x64 Win7虚拟机中,双击
.cer文件,选择「安装证书」→「本地计算机」→「将所有证书放入下列存储」→「受信任的根证书颁发机构」完成导入
- 打开镜像中的
- 安装Win7关键补丁:
必须安装KB3033929(根证书更新补丁)和KB4474419(Win7 SP1的SHA-2代码签名支持补丁),这两个补丁是解决C2RService证书过期问题的核心。
2. 解决VS2019安装包缺失问题
- 使用离线安装包规避在线下载故障:
- 在能正常访问微软服务器的机器上,打开命令提示符运行:
(注:Qt5.15推荐搭配Win10 SDK 17763,可按需调整组件)vs_community.exe --layout D:\VS2019_Offline --add Microsoft.VisualStudio.Workload.NativeDesktop --add Microsoft.VisualStudio.Component.VC.Tools.x86.x64 --add Microsoft.VisualStudio.Component.Windows10SDK.17763 - 将离线包目录复制到Win7虚拟机,运行
vs_setup.exe完成安装。
- 在能正常访问微软服务器的机器上,打开命令提示符运行:
二、Qt5.15+QtWebEngine编译环境配置
1. 基础准备
- 下载Qt5.15.x源码包(推荐5.15.12,最后支持Win7的稳定版本),或通过Qt Maintenance Tool勾选源码组件
- 打开「x64 Native Tools Command Prompt for VS 2019」,运行
qmake -v确认编译器环境变量配置正常
2. QtWebEngine编译配置
- QtWebEngine对Win7的特殊配置:
- 在Qt源码根目录创建
qtwebengine.pro.user文件,添加CONFIG += use_win7_sdk - 提前安装Python 2.7(QtWebEngine依赖)和Perl
- 运行配置命令:
configure.bat -prefix D:\Qt5.15.12_msvc2019 -opensource -confirm-license -nomake examples -nomake tests -webengine-proprietary-codecs - 执行
nmake和nmake install完成编译安装
- 在Qt源码根目录创建
三、CI环境可复用配置流程
1. 基础镜像制作
- 基于打了KB3033929、KB4474419补丁的x64 Win7 SP1镜像,预装:
- VS2019离线安装包中的Native Desktop workload、VC工具链、Win10 SDK 17763
- Python 2.7、Perl、Git
- 导入修复后的证书
- 将该镜像保存为CI环境的基础镜像(如VirtualBox/VMware镜像)
2. 自动化编译脚本
编写批处理脚本build_qt_webengine.bat:
call "C:\Program Files (x86)\Microsoft Visual Studio\2019\Community\VC\Auxiliary\Build\vcvars64.bat" cd D:\Qt5.15.12_src configure.bat -prefix D:\Qt5.15.12_install -opensource -confirm-license -nomake examples -nomake tests -webengine-proprietary-codecs nmake nmake install
CI流程中直接调用该脚本即可完成自动化编译
3. 缓存策略
- 缓存Qt源码、VS离线安装包、编译后的Qt库,减少重复下载和编译耗时
四、补充问题解答
- 官方x64 Win7镜像:微软已停止公开提供,但可通过MSDN订阅渠道获取,或选择经过验证的第三方纯净镜像(需确保未被篡改)
- C2RService证书相关:必须安装KB3033929和KB4474419两个补丁,才能解决C2R安装服务的证书验证问题
内容的提问来源于stack exchange,提问作者Pa_
相关产品推荐
相关产品推荐

