Posted on 2018-02-05 22:50
eryar 阅读(6007)
评论(0) 编辑 收藏 引用
Qt源码编译
eryar@163.com
Key words. Qt, 源码编译
1.Introduction
随着Qt版本升级,源码编译出来的库体积越来越大。如果只是用Qt来做GUI,Qt提供的预编译库中有很多很功能不会用到,所以如果自己从源码编译Qt,一是可以只使用自己程序用到的功能,使自己发布程序的体积尽量小;还有如果对GUI开发感兴趣,就可以自己对源码进行Debug。本文记录一下从源码编译Qt的方法。
2.Download Qt Source Code
因为只用到Qt基本的功能,所以只需要下载qtbase和qttools两个源码,而不用下载整个Qt源码。这两个源码包总大小不超过100M。
http://download.qt.io/archive/qt/5.8/5.8.0/submodules/


还需要下载Perl,可以从 http://strawberryperl.com/releases.html 下载Perl。

将Perl解压放到如下目录:
D:\Qt\perl-5.20.3.3
3.Compile
将源码解压到一个文件夹中,并更改文件名为qtbase和qttools,如下图所示:

并在根目录中创建一个build.bat批处理文件,批处理文件中内容如下所示:
@echo off
set path=%path%;D:\Qt\perl-5.20.3.3\perl\bin;
SET QMAKESPEC=win32-msvc2013
cd %~dp0\qtbase
configure -opensource -debug-and-release -no-qml-debug -no-icu
主要是将Perl加入到PATH环境变量中,使configure批处理中能执行Perl程序。为了使编译出来的Qt尽量简单,可以使用configure配置,不编译一些模块。
从Visual Studio的工具中启动命令窗口,从这里启动命令窗口可以配置好Visual Studio的环境,如下图所示:

在启动的命令窗口中,切换到build.bat所在目录,运行built.bat,得到如下结果:

然后再输入命令:nmake
就耐心等待编译结果了。
就耐心等待编译结果了。
为了方便大家在移动端也能看到我的博文和讨论交流,现已注册微信公众号,欢迎大家扫描下方二维码关注。
