msvc2015 编译 Qt 4.8.7 和 4.8.6
使用msvc2015编译qt4.8.7和4.8.6方法一样。
1. 首先下载对应的qt源码。
2. 解压到某个目录, 这里我选择(D:\Qt\Qt4.8.7)
3. 给qt源码打补丁, 网上下载 02-fix_build_with_msvc2015-45e8f4ee.diff ,路径
https://forum.qt.io/topic/56453/compiling-qt4-head-with-msvc-2015-cstdint-errors/9
该论坛中有该补丁可以下载。下载后将补丁拷贝到源码目录。
4. 使用python 打补丁的脚本给qt源码打补丁
pip install patch
python -m patch
在python的安装目录:C:\Program Files\Python38\Lib\site-packages中,找到python.py文件,拷贝到qt源码目录。
执行 patch.py 02-fix_build_with_msvc2015-45e8f4ee.diff 给源码打补丁。
5. 在qt的源码中,进入mkspecs目录中查看是否有win32-msvc2015目录,没有则创建win32-msvc2015目录,将win32-msvc2013目录中的文件拷贝到win32-msvc2015目录中,
编写qmake.conf文档。 设置 _MSC_VER=1900
#
# qmake configuration for win32-msvc2015
#
# Written for Microsoft Visual C++ 2015
#
MAKEFILE_GENERATOR = MSBUILD
TEMPLATE = app
CONFIG += qt warn_on release incremental flat link_prl precompile_header autogen_precompile_source copy_dir_files debug_and_release debug_and_release_target embed_manifest_dll embed_manifest_exe
QT += core gui
DEFINES += UNICODE WIN32
QMAKE_COMPILER_DEFINES += _MSC_VER=1900 WIN32
6.编辑makefile.win32文件(在源码的qmake目录中),添加QMAKESPEC。 在所有 "$(QMAKESPEC)" == "win32-msvc2013"的后面,添加 "$(QMAKESPEC)" == "win32-msvc2015"选项。
7. 在开始菜单中,打开Visual Studio 2015 command prompt,进入终端,进入qt源码目录。
8. 配置qt, D:\Qt\Qt4.8.7\msvc2015目录是我在D:\Qt\Qt4.8.7下创建的目录。按照下面的配置编译也行,不过没有编译出qwebkit.
configure -make nmake -platform win32-msvc2015 -prefix D:\Qt\Qt4.8.7\msvc2015 -opensource -confirm-license -opengl desktop -nomake examples -nomake tests -mp -debug-and-release
9. 执行nmake开始编译
10.编译完成后执行nmake install,相关库以及其他文件将会拷贝到D:\Qt\Qt4.8.7\msvc2015目录中。