使用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
文件。
然后将此压缩包解压,此时需要注意解压到的目录位置:由于编译(即执行nmake
或jom
)后得到的文件(包括.prl
、.dll
等)会携带源代码路径信息,
所以最好一开始就把源代码放在一个对的位置,并且编译后不要移动或删除。
(注:但执行nmake install
或jom install
后源代码路径信息就被去掉了,所以上面一段可以不必在意。)
我之前曾特意为此在虚拟机中测试安装了qt-opensource-windows-x86-msvc2015-5.6.1.exe
,安装后安装目录的结构如下:
D:\ProgramFiles\Qt\5.6.1 ├─5.6 │ ├─msvc2015 │ └─Src ├─Docs ├─Examples ├─Tools └─……(其他不重要的目录或文件)
因此,我直接将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.
于是,我安装了如下几项:
(注:我将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
,用文本编辑器打开之,编辑内容如下:
ECHO on ECHO 本批处理脚本参考:http://doc.qt.io/qt-5/windows-building.html ECHO 和 http://www.myext.cn/other/a_30787.html ECHO; ECHO 设置Microsoft Visual Studio 2010 x86环境... CALL "D:\ProgramFiles\Microsoft Visual Studio 10.0\VC\vcvarsall.bat" x86 ECHO; ECHO 设置Qt源代码路径... SET QTSRC_DIR=D:\ProgramFiles\Qt\5.6.1\5.6\Src SET PATH=%QTSRC_DIR%\qtbase\bin;%QTSRC_DIR%\gnuwin32\bin;%PATH% SET QMAKESPEC=win32-msvc2010 ECHO; ECHO 设置ICU路径... SET INCLUDE=D:\ProgramFiles\ICU\icu4c-54_1-Win32-msvc10\include;%INCLUDE% SET LIB=D:\ProgramFiles\ICU\icu4c-54_1-Win32-msvc10\lib;%LIB% SET PATH=D:\ProgramFiles\ICU\icu4c-54_1-Win32-msvc10\bin;%PATH% ECHO; ECHO 按任意键,进行configure... @PAUSE>NUL ECHO 开始configure... CALL configure -prefix %QTSRC_DIR%\..\msvc2010_x86 -opensource -confirm-license -platform win32-msvc2010 -debug-and-release -nomake tests -nomake examples -opengl dynamic -mp ECHO; ECHO 按任意键,开始make... @PAUSE>NUL CALL jom ECHO; ECHO 按任意键,开始install... @PAUSE>NUL CALL jom install REM 重新配置和编译请使用 REM nmake distclean 或jom clean
(注:上面脚本中的编译步骤使用了Qt Creator的jom工具,如果还未安装Qt Creator,则需要将上面脚本中的jom
替换成nmake
。)
上面这个脚本里面已经写了较全面的注释,在此就不一一解释了。
然后再在此目录下新建一个批处理文件,命名为my_build_vs2010_x86_and_log.bat
,用文本编辑器打开之,编辑内容如下:
@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 clean
或nmake distclean
(因为编译过程在源代码目录产生了大量的中间文件),
或者可以将源代码目录删除后重新把之前下载的源代码压缩包解压到相同位置。
最后就是在Qt Creator中配置Qt路径了,比较简单,就不再赘述了。
至此,Qt 5.6.1在VS2010平台下的编译全部完成。
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· Linux系列:如何用 C#调用 C方法造成内存泄露
· AI与.NET技术实操系列(二):开始使用ML.NET
· 记一次.NET内存居高不下排查解决与启示
· 探究高空视频全景AR技术的实现原理
· 理解Rust引用及其生命周期标识(上)
· 物流快递公司核心技术能力-地址解析分单基础技术分享
· .NET 10首个预览版发布:重大改进与新特性概览!
· AI与.NET技术实操系列(二):开始使用ML.NET
· 单线程的Redis速度为什么快?
· Pantheons:用 TypeScript 打造主流大模型对话的一站式集成库