使用VS2010编译Qt 5.6.1过程记录

由于Qt官方发布的Qt 5.6.1二进制安装包没有对应VS2010版本的,而我的电脑上只安装了VS2010,因此只能自己编译。
本文记录本人的编译安装过程,以及其中遇到的一些问题。

本文使用VS2010 32位编译Qt 5.6.1。

1. 下载Qt源代码

Qt源代码下载地址:https://www.qt.io/download-open-source/
或直接到下载汇总目录:http://download.qt.io/archive/
其中,Qt 5.6.1的下载目录为:http://download.qt.io/archive/qt/5.6/5.6.1/
见下图:

从上图中可以看到,Qt 5.6.1官方提供的VS版本只有VS2013和VS2015。
由于我的电脑上只有VS2010(至于原因,对我来说VS2010是用得最久的,并且越高的版本的VS占用的空间越大,
微软的东西实在庞大得吓人,所以一直没有更换更高版本的VS),所以只能下载Qt源码自己编译。

Qt 5.6.1源码在上图中的single目录中,见下图:

上图中的几个压缩包的内容是一样的,但是.7z格式的文件是最小的,所以就下载.7z格式的就行啦(前提是你的电脑能解压.7z格式的压缩包)。

2. 将Qt源代码压缩包解压

下载后得到qt-everywhere-opensource-src-5.6.1.7z文件。
然后将此压缩包解压,此时需要注意解压到的目录位置:由于编译(即执行nmakejom)后得到的文件(包括.prl.dll等)会携带源代码路径信息,
所以最好一开始就把源代码放在一个对的位置,并且编译后不要移动或删除。
(注:但执行nmake installjom install后源代码路径信息就被去掉了,所以上面一段可以不必在意。)

我之前曾特意为此在虚拟机中测试安装了qt-opensource-windows-x86-msvc2015-5.6.1.exe,安装后安装目录的结构如下:

  1. D:\ProgramFiles\Qt\5.6.1
  2. ├─5.6
  3. ├─msvc2015
  4. └─Src
  5. ├─Docs
  6. ├─Examples
  7. ├─Tools
  8. └─……(其他不重要的目录或文件)

因此,我直接将qt-everywhere-opensource-src-5.6.1.7z解压到D:\ProgramFiles\Qt\5.6.1\5.6目录下,
然后将得到的文件夹qt-everywhere-opensource-src-5.6.1重命名为Src

3. 安装依赖环境

根据Qt 5.6.1源代码中的README可以知道,编译Qt 5.6.1之前需要安装几个环境:

  • Perl version 5.12 or later [http://www.activestate.com/activeperl/]
  • Python version 2.7 or later [http://www.activestate.com/activepython/]
  • Ruby version 1.9.3 or later [http://rubyinstaller.org/]
  • ICU

Qt 5 can make use of the ICU libraries providing Unicode and Globalization
support (see http://site.icu-project.org/). They are required for building QtWebKit.
On Windows, they need to be manually installed and the "include" and "lib"
folders of the ICU installation must be appended to the INCLUDE and LIB
environment variables after calling the Windows SDK setup script.
The "bin" folder of the ICU installation should be appended to the PATH
environment variable in order to for the DLLs to be found at run-time.

  • DirectX SDK (DirectX 9 or 11)

For Qt Quick 2 to work, a graphics driver that provides OpenGL 2.1 or higher is required.
The default driver from Windows is OpenGL 1.1. Qt includes a version of the ANGLE project
which is included from the Windows Qt installers.
ANGLE implements the OpenGL ES 2.0 API on top of DirectX 11 or DirectX 9.
ANGLE requires that the DirectX SDK is installed when building Qt.

于是,我安装了如下几项:

  • ActivePerl 5.22.1.2201
  • Python 2.7.11
  • Ruby 2.2.4
  • icu4c 54.1
  • DXSDK_Jun10

(注:我将ICU安装压缩包icu4c-54_1-Win32-msvc10.zip解压到D:\ProgramFiles\ICU目录下,
并重命名为icu4c-54_1-Win32-msvc10,即得到D:\ProgramFiles\ICU\icu4c-54_1-Win32-msvc10。下面会用到这个目录。)

4. 开始编译安装

D:\ProgramFiles\Qt\5.6.1\5.6\Src目录中新建一个批处理文件,命名为my_build_vs2010_x86.bat,用文本编辑器打开之,编辑内容如下:

  1. ECHO on
  2. ECHO 本批处理脚本参考:http://doc.qt.io/qt-5/windows-building.html
  3. ECHO http://www.myext.cn/other/a_30787.html
  4. ECHO;
  5. ECHO 设置Microsoft Visual Studio 2010 x86环境...
  6. CALL "D:\ProgramFiles\Microsoft Visual Studio 10.0\VC\vcvarsall.bat" x86
  7. ECHO;
  8. ECHO 设置Qt源代码路径...
  9. SET QTSRC_DIR=D:\ProgramFiles\Qt\5.6.1\5.6\Src
  10. SET PATH=%QTSRC_DIR%\qtbase\bin;%QTSRC_DIR%\gnuwin32\bin;%PATH%
  11. SET QMAKESPEC=win32-msvc2010
  12. ECHO;
  13. ECHO 设置ICU路径...
  14. SET INCLUDE=D:\ProgramFiles\ICU\icu4c-54_1-Win32-msvc10\include;%INCLUDE%
  15. SET LIB=D:\ProgramFiles\ICU\icu4c-54_1-Win32-msvc10\lib;%LIB%
  16. SET PATH=D:\ProgramFiles\ICU\icu4c-54_1-Win32-msvc10\bin;%PATH%
  17. ECHO;
  18. ECHO 按任意键,进行configure...
  19. @PAUSE>NUL
  20. ECHO 开始configure...
  21. CALL configure -prefix %QTSRC_DIR%\..\msvc2010_x86 -opensource -confirm-license -platform win32-msvc2010 -debug-and-release -nomake tests -nomake examples -opengl dynamic -mp
  22. ECHO;
  23. ECHO 按任意键,开始make...
  24. @PAUSE>NUL
  25. CALL jom
  26. ECHO;
  27. ECHO 按任意键,开始install...
  28. @PAUSE>NUL
  29. CALL jom install
  30. REM 重新配置和编译请使用
  31. REM nmake distclean jom clean

(注:上面脚本中的编译步骤使用了Qt Creator的jom工具,如果还未安装Qt Creator,则需要将上面脚本中的jom替换成nmake。)

上面这个脚本里面已经写了较全面的注释,在此就不一一解释了。

然后再在此目录下新建一个批处理文件,命名为my_build_vs2010_x86_and_log.bat,用文本编辑器打开之,编辑内容如下:

  1. @CALL %SystemRoot%\system32\cmd.exe /E:ON /V:ON /k "my_build_vs2010_x86.bat" 2>&1 |mtee/d/t/u/+ my_build_vs2010_x86.log

其中的mtee是一个用于Windows批处理输出重定向的一个小工具,可以到此下载,
下载之后安装,把mtee.exe所在路径添加到系统Path环境变量中就可以了。
使用mtee是为了在命令行窗口显示输出的同时将过程中的所有输出记录到文件。

然后双击运行my_build_vs2010_x86_and_log.bat,即可自动完成Qt 5.6.1的编译和安装。

运行结束后得到log文件my_build_vs2010_x86.log即为过程中的所有输出的记录。

5. 后续处理

编译安装完成之后,可以直接把源代码目录Src删除。
如果想保留源代码,可以在源代码目录执行jom cleannmake distclean(因为编译过程在源代码目录产生了大量的中间文件),
或者可以将源代码目录删除后重新把之前下载的源代码压缩包解压到相同位置。

最后就是在Qt Creator中配置Qt路径了,比较简单,就不再赘述了。

至此,Qt 5.6.1在VS2010平台下的编译全部完成。



来自为知笔记(Wiz)


转载于:https://www.cnblogs.com/jloveu/p/build-Qt561-on-VS2010-record.html

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/457100.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

Windows安装Apache注册服务出现(OS 5)拒绝访问。 : AH00369: Failed to open the Windows service manager,

windows安装Apache,注册服务出现“(OS 5)拒绝访问。 : AH00369: Failed to open the WinNT service manager..."错误 在安装Apache的时候,我下载的是zip格式,不是msi安装版,需要自己注册服务,才能在桌面任务栏里有…

算法与数据结构(三) 二叉树的遍历及其线索化(Swift版)

前面两篇博客介绍了线性表的顺序存储与链式存储以及对应的操作,并且还聊了栈与队列的相关内容。本篇博客我们就继续聊数据结构的相关东西,并且所涉及的相关Demo依然使用面向对象语言Swift来表示。本篇博客我们就来介绍树结构的一种:二叉树。在…

linux替换某个文件夹下所有文件,Linux 批量查找并替换文件夹下所有文件的内容...

1.批量查找某个目下文件的包含的内容cd etcgrep -rn "查找的内容" ./2.批量替换某个目下所有包含的文件的内容cd etcsed -i "s/查找的内容/替换后的内容/g" grep -rl "查找的内容" ./3.批量查找并替换任意文件夹下的文件内容。sed -i "s/要…

java中String相等问题

判断两个字符串是否相等的问题。在编程中,通常比较两个字符串是否相同的表达式是“”,但在java中不能这么写。在java中,用的是equals(); 例:A字符串和B和字符串比较: if(A.equals(B)){ } 返回true 或false. String 的equals 方法用于比较两个…

WebForm 分页与组合查询

1.封装实体类 2.写查询方法 //SubjectData类 public List<Subject> Select(string name){List<Subject> list new List<Subject>();cmd.CommandText "select *from Subject where SubjectName like a ";cmd.Parameters.Clear();cmd.Parameters.A…

node.js简单爬虫

这里假设你已经安装好node.js和npm&#xff0c;如果没有安装&#xff0c;请参阅其他教程安装。 配置首先是来配置package.json文件&#xff0c;这里使用express,request和cheerio。package.json如下&#xff1a; {"name": "node-scrape","version&quo…

Struts2入门(二)——配置拦截器

一、前言 之前便了解过&#xff0c;Struts 2的核心控制器是一个Filter过滤器&#xff0c;负责拦截所有的用户请求&#xff0c;当用户请求发送过来时&#xff0c;会去检测struts.xml是否存在这个action&#xff0c;如果存在&#xff0c;服务器便会自动帮我们跳转到指定的处理类中…

linux固态机械分区吗,不再疑惑!实测数据后才知道固态硬盘究竟要不要分区

不再疑惑&#xff01;实测数据后才知道固态硬盘究竟要不要分区2019-12-10 20:52:00162点赞594收藏177评论前几年的固态硬盘价格昂贵&#xff0c;一般用户会选择128G或256G的固态作为系统盘&#xff0c;由于单盘空间不大&#xff0c;一般都会配合机械硬盘使用&#xff0c;无需考…

安卓手机的后门控制工具SPADE

SPADE&#xff0c;一款安卓手机的后门控制工具&#xff0c;安全研究人员可以以此了解和研究安卓后门原理。 首先&#xff0c;我们从网站www.apk4fun.com下载apk文件&#xff0c;如ccleaner。然后&#xff0c;我们安装spade git clone https://github.com/suraj-root/spade.git …

MySQL案例-open too many files,MyISAM与partition

-------------------------------------------------------------------------------------------------短文---------------------------------------------------------------------------------------------------------------长话短说~现象: error log中批量刷错误日志, 形…

linux网卡有很多error,教你设置win7系统虚拟机安装linux提示network error的解决方法...

很多朋友在使用电脑的过程中&#xff0c;会发现win7系统虚拟机安装linux提示network error的现象&#xff0c;当遇到win7系统虚拟机安装linux提示network error的问题&#xff0c;我们要怎么解决呢&#xff1f;如今还有很多用户不知道如何处理win7系统虚拟机安装linux提示netwo…

linux模拟网络延迟,使用Nistnet搭建网络延迟模拟设备 (network delay simulator)

mknod /dev/hitbox c 62 0mknod /dev/nistnet c 62 1chown root /dev/hitboxchown root /dev/nistnetmknod /dev/mungebox c 63 0chown root /dev/mungeboxmknod /dev/spybox c 64 0chown root /dev/spyboxmodprobe nistnet可以将这个放到/etc/rc.local中&#xff0c;以便重启后…

将本地Blog部署到GitHub上,有自己的博客页面!

前言 上一篇文章我们已经把本地的hexo环境搭建好了&#xff0c;并且在本地成功预览&#xff0c;但是本地预览也意味着自己的博文只能自己看的到&#xff0c;其他人根本看不到&#xff0c;这篇文章将接上文说一说如何把本地Blog部署到GitHub上&#xff0c;好让小伙伴可以来访问我…

Linux下安装配置JDK

本人使用的VM虚拟机&#xff0c;在VM上安装了Linux&#xff0c;版本是CentOS-6.7-i386-bin-DVD1.iso。 一、下载JDK 在进入JDK官网&#xff0c;找到要下载的JDK版本&#xff0c;将下载地址复制下来&#xff0c;放到迅雷中下载&#xff0c;我下载的是&#xff1a;http://downloa…

新手使用GitHub客户端提交项目的步骤

1.下载https://windows.github.com/ github客户端 2.安装完github&#xff0c;会出现 点击GitHub&#xff0c;Git Shell是命令行指令&#xff0c;暂时用不上 3.点击进入之后 输入你在https://github.com上面注册的用户名和密码点击log in 4.登录之后新建项目 点击左上角…

linux的命令uname n,Linux下uname命令及其选项

Linux下uname命令及其选项2017-03-15 23:22:26晓得了Linux系统的用户信息后&#xff0c;你也可能想晓得所登录的系统信息&#xff0c;今日就绍介获取系统本身信息的命令uname,这搭u应当是UNIX的缩写&#xff0c;操作如次&#xff1a;uname使役uname还可以得到其它相关系统的信息…

火狐浏览器Firefox如何使用插件,火狐有哪些好用的插件

1 CoorPreviews 不打开网页链接预览该网页的内容。 预览如图所示&#xff1a; 点击关闭旁边的钉子可以让该窗口保持开着并且浏览速度加快。这对于快速浏览图片时非常有用。 2 FoxTab 3D方式预览网页&#xff0c;只要按一下输入框左侧按钮即可。 此外还提供多种预览模式和其…

GitHub+Hexo搭建自己的Blog之-主题配置

前言 前两章我们已经把Blog的环境全部搭建完毕了&#xff0c;但是还没有内容&#xff0c;而且hexo默认的主题是不是感觉挺丑的&#xff0c;其实hexo给我们提供了很多主题模板&#xff0c;总有一款是你喜欢的&#xff0c;本篇文章将继续说一说如何配置主题&#xff0c;怎么创建博…

开源app之MyHearts

前言 这个月&#xff0c;说实话&#xff0c;有忙有闲&#xff0c;经历了一次病痛的洗礼&#xff0c;才认识到了只有好好的生活&#xff0c;认真的对待自己的身体&#xff0c;才能更好的去工作&#xff0c;没有了身体的支撑&#xff0c;什么工作都只能是纸老虎&#xff0c;不攻自…

前端那些事之原生 js实现贪吃蛇篇

2019独角兽企业重金招聘Python工程师标准>>> 原生js实现贪吃蛇 <!DOCTYPE html> <html lang"en"> <head><meta charset"UTF-8"><title>贪吃蛇游戏</title><style>body, div, img {margin: 0 auto;pa…