获取源码
首先要克隆Qt5 git仓库的最高一级
#第一种方式,速度快,后续init -repository不易掉线
$ git clone git://code.qt.io/qt/qt5.git
#第二种方式
#或者有防火墙的话,使用下面的http协议也可以
$ git clone https://code.qt.io/qt/qt5.git
#上面这两条命令,可以用git bash在我们自己电脑上某个目录下面输入
clone完成后,如下图所示(我是在一个名字叫git的目录下clone的)
之后,切换目标分支。直接克隆下来,默认是dev分支(也就是永久分支,始终处于开发状态的分支;通过cd qt5,我们可以看到"(dev)"这个标签 ),我们可以通过git checkout 5.12 切换到5.12分支上去。
$ cd qt5
$ git checkout 5.12
最后,获取我们所需要的子模块的代码。我们可以使用qt5/init-repository来克隆Qt5不同子模块的代码(想要哪一个就要哪一个)。
perl init-repository --module-subset=default,-qtwebengine
#--module-subset=default,-qtwebengine的意思是,下载默认的模块,除了Qt WebEngine。
之所以这样,是因为,Qt WebEngine需要花费很长时间编译,而且通常是编译错误的一个源头。
所以,推荐,只有打算使用的时候,才下载该模块。
当然,我们可以重新跑init-repository脚本,来添加该模块。
clone过程开始,坐等就行。注意,采用https(SSL,也就是第二种clone方式)clone,需要网速比较好才行,否则,clone的过程不会特别顺利,中间容易掉线。我也是clone了好几次才成功的,时间也是专门选在没啥人上网的大早上.......如果等不及,还是用SSH(第一种clone)吧。
当然,用第二种方式clone容易掉线的一个原因是源码确实比较大,也可以逐个submodule clone(以子模块qtbase为例,命令是,perl init-repository -f --module-subset=qtbase)。
关于git clone报错
如果采用https(SSL)clone,可能会遇到报错。例如,
error: RPC failed; curl 56 OpenSSL SSL_read: SSL_ERROR_SYSCALL, errno 10054,或者,error: RPC failed; curl 18 transfer closed with outstanding read data remaining。
这两种错误,解决方法有好几种,估计要试试。参见参考链接。我是通过提高网速解决的。
配置和编译
进行中......
参考链接
git clone 报错:error: RPC failed; curl 18 transfer closed with outstanding read data remain 有原因分析及解决方案
git clone时RPC failed; curl 18 transfer closed with outstanding read data remaining 提到了失败的原因可能是网速慢
【git clone】 error: RPC failed; curl 56 OpenSSL SSL_read: SSL_ERROR_SYSCALL, errno 10054
给git-bash安装某些应用(make,wget,hugo,xpdf,nano)
Windows下GitBash提示bash: make: command not found解决办法,非常简单有效!
How to add more commands to Git Bash?