Win10 + VS2015 下编译 Qt5.6.0

近期由于另外一个项目需要用 vs2015 ,于是把 Qt 也升级到了 5.6.0 。由于项目需要兼容 Windows xp ,所以需要自己编译 Qt 。这里大致整理一下编译的过程。

  1. 安装 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)。
  2. 安装 VS2015 。这个在线安装时间很长,慢慢等吧。
  3. 下载 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 。
  4. 在 Qt 源码目录 E:\qt-everywhere-opensource-src-5.6.0 下新建 qt-build.bat 文件。这个 bat 文件的作用是配置 Qt 编译条件。我的 bat 文件内容如下:

     1 REM ********** Initialize env for msvc 2015 cl compiler **********
     2 SET PATH=C:\Windows;C:\Windows\system32
     3 REM Set up \Microsoft Visual Studio 2015, where <arch> is amd64, x86, etc.
     4 CALL "C:\Program Files (x86)\Microsoft Visual Studio 14.0\VC\vcvarsall.bat" x86
     5
     6 REM ********** Update include & lib to support xp win sdk 7.1A **********
     7 SET PATH=C:\Program Files (x86)\Microsoft SDKs\Windows\v7.1A\Bin;%PATH%
     8 SET INCLUDE=C:\Program Files (x86)\Microsoft SDKs\Windows\v7.1A\Include;%INCLUDE%
     9 SET LIB=C:\Program Files (x86)\Microsoft SDKs\Windows\v7.1A\Lib;%LIB%
    10 SET CL=/D_USING_V140_SDK71_;%CL%
    11
    12 REM ********** 3rd party build tools binaries: ruby, perl, python **********
    13 SET PATH=C:\Ruby22-x64\bin;C:\Perl64\bin;C:\Python35;%PATH%
    14
    15 REM ********** Set up qt source env **********
    16 SET _ROOT=E:\qt-everywhere-opensource-src-5.6.0
    17 SET PATH=%_ROOT%\qtbase\bin;%_ROOT%\gnuwin32\bin;%PATH%
    18 REM Uncomment the below line when using a git checkout of the source repository
    19 REM SET PATH=%_ROOT%\qtrepotools\bin;%PATH%
    20 SET QMAKESPEC=win32-msvc2015
    21 SET _ROOT=
    22
    23 REM Generate makefile
    24 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
  5. 运行 cmd ,并进入 Qt 源码目录,运行 qt-build.bat。

    E:cd E:\qt-everywhere-opensource-src-5.6.0qt-build.bat
  6. 等 Qt 完成配置之后,运行 nmake 。然后就是漫长的等待——在我的机器上大概需要 2 小时。

    nmake
  7. 等待编译完成之后,运行 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 。

时间: 2024-10-08 13:50:49

Win10 + VS2015 下编译 Qt5.6.0的相关文章

linux下编译qt5.6.0静态库——configure配置

 随笔 - 116  文章 - 4  评论 - 7 linux下编译qt5.6.0静态库--configure配置 linux下编译qt5.6.0静态库 linux下编译qt5.6.0静态库 configure生成makefile 安装选项 Configure选项 第三方库: 附加选项: QNX/Blackberry选项: Android 选项: 生成makefile 遇到链接检查失败的情况 生成makefile后进行编译 编译时的错误 多重定义'QT_MODBUS()'和'QT_MODBU

linux下编译qt5.6.0——configure配置

linux下编译qt5.6.0 首先下载源码包qt-everywhere-opensource-src-5.6.0.7z 然后解压 7z x -o/home/o/qt-src/qt-opensource-src-5.6.0 qt-everywhere-opensource-src-5.6.0.7z cd /home/o/qt-src/qt-opensource-src-5.6.0 我这里解压到/home/o/qt-src/qt-opensource-src-5.6.0中,解压后进入这个目录. c

Win10 VS2015 静态编译Qt5.6.2源码

由于VS2015需要CRT等拓展组件,因此把内部编写的工具软件以静态发布,固需要编译Qt源码.Qt5.6.2版本,VS2015,Win10 1.安装python,perl,下载jom 2.改文件common/msvc-desktop.conf QMAKE_CFLAGS_RELEASE = -O2 -MTQMAKE_CFLAGS_RELEASE_WITH_DEBUGINFO += -O2 -MT -ZiQMAKE_CFLAGS_DEBUG = -Zi -MTd 3.vs2015命令行静态编译命名,

CentOS6.2下安装Qt5.1.0

因为要将程序实现跨平台,所以只能在CentOS6.2上再安装一次Qt,为了保证一致性,我使用了和windows下版本一样的Qt5.1.0,可以到此处下载. 下载好,复制到虚拟机上后,直接双击运行,一切良好,安装完毕,可是却无法启动,于是在网上搜解决方案,将遇到的问题及解决办法记下来. 1.从application>Programming>Qt Creator点击,结果没有反应,只能使用命令行到安装目录下,启动,提示错误如下: /usr/lib64/libstdc++.so.6: version

VS2010编译Qt5.4.0静态库

http://www.kavenblog.com/?p=375 1.Qt的跨平台十分优秀,但是在Windows上是还是会有许多问题,其中之一就是动态链接库的问题,Qt程序的发布必须带一个体积不小的DLL库,这十分不方便.当然,如果是程序员之间会比较方便,如果别人的机子也安装了Qt,并且设置了环境变量,那么也可以不将公共的DLL附在发布的程序中.但是,这样显然还是不方便. 2.静态链接库很好的解决了这一个问题,下面就来详细叙述如何编译Qt5.4.0的静态库. 3.参考链接:http://blog.

CentOS 7.2 下编译安装PHP7.0.10+MySQL5.7.14+Nginx1.10.1的方法

这篇文章主要介绍了CentOS 7.2 mini版本下编译安装PHP7.0.10+MySQL5.7.14+Nginx1.10.1的方法,非常不错,具有参考借鉴价值,需要的朋友可以参考下一.安装前的准备工作 1.yum update #更新系统 2.yum install gcc gcc-c++ autoconf automake cmake bison m4 libxml2 libxml2-devel libcurl-devel libjpeg-devel libpng-devel libicu

VS2013编译Qt5.6.0静态库(乌合之众)

获取qt5.6.0源码包 直接去www.qt.io下载就好了,这里就不详细说了. 这里是我已经编译好的** 链接:http://pan.baidu.com/s/1pLb6wVT 密码: ak7y ** configure配置 1.进入源码目录下的qtbase\mkspecs\win32-msvc2013目录,打开文件qmake.conf文件.添加 QMAKE_CFLAGS_RELEASE = -O2 -MT -Zc:strictStrings QMAKE_CFLAGS_RELEASE_WITH_

ubuntu下安装Qt5.5.0

下载相应系统的Qt版本.http://www.qt.io/download-open-source/#section-2 安装的是32位的ubuntu,就下载x86的.就是这个qt-opensource-linux-x86-5.5.0.run. 下完之后,cd到下载的那个目录,更改文件权限chmod 700 qt-opensource-linux-x86-5.5.0.run 然后执行./qt-opensource-linux-x86-5.5.0.run 出现Qt安装对话框,下一步到完成. 编译的

一、Ubuntu下编译安装Mysql5.0.45

一.编译安装Mysql5.0.45 在Ubuntu下搭建LNMP环境.编译安装mysql,nginx,php.最后在LNMP前提下安装composer,并且安装laravel框架.首先,第一步开始编译安装Mysql. 步骤: cd /usr/local/src,进入到文件夹中,这个文件夹用来保存所需使用的软件安装包. 接着键入"sudo wgethttp://downloads.mysql.com/archives/mysql-5.0/mysql-5.0.45.tar.gz"回车,如果