编译Qt

参考:

Windows 下自己准备自己想要的编译器。编译自己想要的 Qt 版本
最近 5.6 出来了,有好多新的变化,第一时间准备尝鲜。
我自己的是 MSVC2015 Qt5.6

首先要准备:

  • Perl
  • Git
  • python

如果要是编译webkit的话,还需要 icu 套件,这次为了熟悉流程先不编这个,因为 Qt5.6 已经把 webkit 移除了,换成了 webengine ,官网的文档还没有更新,暂时还没研究

一定要先装Perl再装Git,以免用了老的Git,会导致脚本失败
而且安装Git的时候需要选择可以在cmd使用Git命令,不然就只能用Git自己带的那个命令行了
Qt的代码使用Git做版本管理,但是他的子库很多,每个模块都是单独的一个仓库,所以检出的时候为了避免麻烦则用Perl写成了脚本。

为了方便的话,可以直接用VS的命令行,这样免了设置MSVC的环境了。
设置一些环境变量:

1
2
3
4
SET _ROOT=C:\qt5
SET PATH=%_ROOT%\qtbase\bin;%_ROOT%\gnuwin32\bin;%PATH%
SET QMAKESPEC=win32-msvc2015
SET _ROOT=
  • 注:_ROOT设置成自己检出Qt代码的目录(你检出代码之后再去设置这些也是可以的),QMAKESPEC 设置成自己用的编译器

取顶层仓库

git clone git://code.qt.io/qt/qt5.git

或者是

git clone https://code.qt.io/qt/qt5.git

这样会在你的目录下检出Qt顶层仓库。

然后执行Perl脚本检出子库

perl init-repository

  • 注:这里边官方文档说是可以使用–no-webkit来屏蔽webkit相关子库,但是我这里是不能用这个参数的,无法解析这个参数,看脚本内容也没有跟–no-webkit相关的。虽然把webkit的代码检出了,但是编译的时候,如果你没有安装上边说的icu套件,编译会自动跳过的。

接下来是configure

configure -prefix f:/qtsrc/qt-msvc2015-x64 -debug -static -platform win32-msvc2015 -c++11 -opengl desktop -qt-libpng -qt-libjpeg -nomake examples -nomake tests -mp

这是我的配置,基本上都是一眼就能看出来的选项。(从我的观察来看Qt5以上应该已经不支持demos这个选项了,如果加了会报错)

然后编译

nmake

转移到其他目录(就是-prefix指定的目录)

nmake install

在目录下就能看到已经编好的工具还有lib了。想要dll什么的改下configure的参数就可以了