Win10 + VS2015 下编译 Qt5.6.0
近期由于另外一个项目需要用 vs2015 ,于是把 Qt 也升级到了 5.6.0 。由于项目需要兼容 Windows xp ,所以需要自己编译 Qt 。这里大致整理一下编译的过程。
- 安装 ActivePerl / Python / Ruby 。
ActivePerl: http://www.activestate.com/activeperl/downloads 。我用的版本是 ActivePerl-5.22.1.2201-MSWin32-x64-299574 。
Python: https://www.python.org/downloads/ 。我用的版本是 python-3.5.1-amd64 。
Ruby: https://www.ruby-lang.org 。我用的版本是 rubyinstaller-2.2.4-x64 。如果不编译第三方的一些东西,可以不用 Ruby 。其实我编译的时候也没有用到,只是顺手装上了。
为了方便,我把这几个都直接安装在了 C 盘根目录下(C:\Perl64 , C:\Python35 ,C:\Ruby22-x64)。 - 安装 VS2015 。这个在线安装时间很长,慢慢等吧。
- 下载 Qt 源码,并解压到本地目录。
可以从这里选择合适的镜像站点下载:http://download.qt.io/official_releases/qt/5.6/5.6.0/single/qt-everywhere-opensource-src-5.6.0.zip.mirrorlist 。下载完成之后,解压缩到本地目录。我这里解压后的目录是 E:\qt-everywhere-opensource-src-5.6.0 。 - 在 Qt 源码目录 E:\qt-everywhere-opensource-src-5.6.0 下新建 qt-build.bat 文件。这个 bat 文件的作用是配置 Qt 编译条件。我的 bat 文件内容如下:
REM ********** Initialize env for msvc 2015 cl compiler **********
SET PATH=C:\Windows;C:\Windows\system32
REM Set up \Microsoft Visual Studio 2015, where <arch> is amd64, x86, etc.
CALL "C:\Program Files (x86)\Microsoft Visual Studio 14.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_V140_SDK71_;%CL% REM ********** 3rd party build tools binaries: ruby, perl, python **********
SET PATH=C:\Ruby22-x64\bin;C:\Perl64\bin;C:\Python35;%PATH% REM ********** Set up qt source env **********
SET _ROOT=E:\qt-everywhere-opensource-src-5.6.0
SET PATH=%_ROOT%\qtbase\bin;%_ROOT%\gnuwin32\bin;%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-msvc2015
SET _ROOT= REM Generate makefile
configure.bat -confirm-license -opensource -platform win32-msvc2015 -debug-and-release -static -target xp -prefix D:\Qt\Qt5.6.0-static-win32-vs2015-xp -qt-sql-sqlite -qt-sql-odbc -plugin-sql-sqlite -plugin-sql-odbc -qt-zlib -qt-libpng -qt-libjpeg -opengl desktop -qt-freetype -no-qml-debug -no-angle -nomake tests -nomake examples -skip qtquickcontrols -skip qtquickcontrols2 -skip qtsensors -skip qtdoc - 运行 cmd ,并进入 Qt 源码目录,运行 qt-build.bat。
E:
cd E:\qt-everywhere-opensource-src-5.6.0
qt-build.bat - 等 Qt 完成配置之后,运行 nmake 。然后就是漫长的等待——在我的机器上大概需要 2 小时。
nmake
- 等待编译完成之后,运行 nmake install 。编译之后的文件会被自动复制到由 -prefix 指令指定的目录下。
下面对 qt-build.bat 文件做一个简要的说明。
- 1-10 行是配置 VC 编译器。其中 6-10 行是启用 VC 对 Windows xp 系统的支持。由于 VS 2012 之后,默认就不再支持 xp 。但微软也提供了一个编译选项去开启 xp 支持,也就是 _USING_V140_SDK71_ 指令。对应在 VS2013 下是 _USING_V120_SDK71_ 。在 VS 中的设置见下图。

- 12-21 行就是设置编译需要依赖的环境,请确保这些路径和本地一致。
- 24 行是实际的配置命令。-confirm-license -opensource 指定了采用开源授权协议。 -platform win32-msvc2015 指定了要编译的平台,Qt支持的平台可以在 qtbase\mkspecs 目录下找到。 -debug-and-release 表示包含 Debug 和 Release 版本。由于我是静态编译并且支持 xp ,故包含了 -static 和 -target xp 指令。-prefix D:\Qt\Qt5.6.0-static-win32-vs2015-xp 指令指定了编译完成之后的安装路径,也就是运行 nmake install 时编译后的库要复制到的路径。其他的指令指定了要包含的模块和要排除的模块(-skip 可以排除你不需要的模块)。
- 以前编译 Qt5.5.1 版本的时候,我的指令里包含了 -skip qtwebkit 。但这次编译 Qt5.6.0 版本时却总在配置时报 “Attempting to skip non-existent module qtwebkit.” 。后来去掉 -skip qtwebkit 才配置成功。 看来 Qt5.6.0 里默认已经不包含 QtWebket 模块了(我猜的,没有查 ^_^)。
最后,附上 Qt5 官方关于 Windows 支持的资料的链接:http://doc.qt.io/qt-5/windows-support.html 。
Win10 + VS2015 下编译 Qt5.6.0的更多相关文章
- linux下编译qt5.6.0静态库——configure配置
linux下编译qt5.6.0静态库 linux下编译qt5.6.0静态库 configure生成makefile 安装选项 Configure选项 第三方库: 附加选项: QNX/Blackberr ...
- linux下编译qt5.6.0静态库——configure配置(超详细,有每一个模块的说明)(乌合之众)
linux下编译qt5.6.0静态库 linux下编译qt5.6.0静态库 configure生成makefile 安装选项 Configure选项 第三方库: 附加选项: QNX/Blackberr ...
- linux下编译qt5.6.0静态库(使用./configure --help来看看都有哪些参数。超详细,有每一个模块的说明。如果改变了安装的目录,需要到安装目录下的bin目录下创建文件qt.conf)(乌合之众)good
linux下编译qt5.6.0静态库 linux下编译qt5.6.0静态库 configure生成makefile 安装选项 Configure选项 第三方库: 附加选项: QNX/Blackberr ...
- Win10 VS2015 静态编译Qt5.6.2源码
由于VS2015需要CRT等拓展组件,因此把内部编写的工具软件以静态发布,固需要编译Qt源码.Qt5.6.2版本,VS2015,Win10 1.安装python,perl,下载jom 2.改文件com ...
- 静态编译 Qt5.7.0 (含 openssl 支持)
关于Qt静态便宜的环境等,请先参见 Win10 + VS2015 下编译 Qt5.6.0 . 首先编译 openssl .我这里用的版本是 openssl 1.0.2j (新的1.1版本的便宜稍有不同 ...
- VS2015编译Qt5.7.0生成支持XP的静态库(很不错)
一.编译工具 1.VS2015 编译Qt5.7.0的所需VS版本:Visual Studio 2013 (Update1)或Visual Studio 2015 (Update2).因为Update补 ...
- linux下编译gcc6.2.0
linux下编译gcc6.2.0 在archlinx的下gcc已经更新到6.2.1了,win10的WSL下还是gcc4.8.官方源没有比较新的版本,于是自己编译使用. GCC6的几个新特性 GCC 6 ...
- VS2010编译Qt5.4.0静态库
http://www.kavenblog.com/?p=375 1.Qt的跨平台十分优秀,但是在Windows上是还是会有许多问题,其中之一就是动态链接库的问题,Qt程序的发布必须带一个体积不小的DL ...
- [libpng]CMake+VS2015下编译libpng,及使用小例
编译前的工作 在编译libpng前,需要把zlib编译好,并加载到编译环境里. CMake + VS2015 下编译zlib,及使用小例 下载与解压 libpng的官网是 http://www.lib ...
随机推荐
- Express ejs 3.* layout.ejs
新版本改成了 <%- include file.ejs %> 具体使用方法如下:1. views文件夹 下新建header.ejs,插入代码 <html><head> ...
- Scala 深入浅出实战经典 第75讲:模式匹配下的For循环
王家林亲授<DT大数据梦工厂>大数据实战视频 Scala 深入浅出实战经典(1-87讲)完整视频.PPT.代码下载: 百度云盘:http://pan.baidu.com/s/1c0noOt ...
- 同时大量PPPoE连接请求,攻击PPPoE服务器,导致的用户异常掉线故障分析
前几天接一个客户电话,PPPoE下用户异常掉线,掉线后拨号困难 到达后,我首先查看PPPoE日志,发现一秒钟内有大量PADI包,浪费服务器的SESSION,同时让服务器无法处理其他用户的请求. 打开W ...
- [译] 二、开始iOS编程之前,你还需要做什么?
声明:本文翻译自AppCoda网站的文章:What You Need to Begin iOS Programming?,作者是创建者Simon Ng.如有异议,请联系博主. 更新:帖子已经重新被 ...
- JS实现移动端图片延迟加载
图片延迟加载常见的有,jquery.lazyload.js,原生JS实现的echo.js.但是都是必须给图片设置宽高. 因为项目是移动端,而且无法在加载前知道图片的宽高,所以,只好自己写了一个. 既然 ...
- 增大VM下linux的根目录空间
增大VM下linux的根目录空间 用的太久,发现VM下的系统空间不足.简单的方法是,分一个新硬盘,挂载到根目录下. 下面是直接增大根目录下空间: 1. 增大vm下的磁盘大小, VM -&g ...
- HTML5本地存储之localStorage、sessionStorage
1.概述 localStorage和sessionStorage统称为Web Storage,它使得网页可以在浏览器端储存数据. sessionStorage保存的数据用于浏览器的一次会话,当会话结束 ...
- 使用过滤器解决SQL注入和跨站点脚本编制
1 SQL注入.盲注 1.1 SQL注入.盲注概述 Web 应用程序通常在后端使用数据库,以与企业数据仓库交互.查询数据库事实上的标准语言是 SQL(各大数据库供应商都有自己的不同版本).Web 应用 ...
- 在linux下配置静态IP
在终端中输入:vi /etc/sysconfig/network-scripts/ifcfg-eth0 开始编辑,填写ip地址.子网掩码.网关.DNS等.其中“红框内的信息”是必须得有的. 编 ...
- SQL Server2008如何设置开启远程连接
登陆SQL Server 2008(windows身份认证),登陆后右击,选择“属性”. 2 左侧选择“安全性”,选中右侧的“SQL Server 和 Windows 身份验证模式”以启用混合登录模式 ...