首页 > 代码库 > Qt 5的git源码编译

Qt 5的git源码编译

Qt 5的git源码编译

         由于一些需求,需要接触Qt3D。虽然Qt 3D还没有问世,但是据称已经差不多完成了。Qt 3D的内部版本是2.0,将会并入Qt 5.5中。现在还是有一些途径来获取Qt 3D的。那就是使用git获取最新的源码进行编译。花了好几天的时间,终于成功了。下面分享一下心得。

蒋彩阳原创文章,首发地址:http://blog.csdn.net/gamesdev/article/details/43404647。欢迎同行前来探讨。

1、下载并且安装git forwindows。git是开源世界协同工作的版本控制工具,这里下载就不再赘述了。

 

2、下载ActivePerl,在生成repository的时候是非常有用的。下载地址

http://downloads.activestate.com/ActivePerl/releases/5.20.1.2000/ActivePerl-5.20.1.2000-MSWin32-x64-298557.msi

 

3、找到Qt 5的gitorious镜像

git@gitorious.org:qt/qt5.git

可以使用https协议clone,也可以使用git协议clone。如果使用git协议进行clone,需要ssh。使用git bash,输入ssh-keygen,按照提示生成公钥和私钥。在gitorious网站中进行注册,最后将生成的id_rsa.pub编辑复制粘贴到gitorious网站中。

技术分享

4、随便找一个文件夹,比如说

G:/Qt5-Dev

在这里面点击右键菜单,有一个git bash,在这里就可以进行菜单操作了。

 

5、首先将远程的数据clone下来。

git clone git@gitorious.org:qt/qt5.git .

技术分享

6、因为在git bash中,是msys交互环境,也就是和Unix一样的sh环境,这个和Windows的命令提示符(CommandPrompt)不一样,所以要按照Unix的方法设置环境变量。

export PATH=\

/e/Develop/Perl64/bin:\

/e/Develop/Git/bin:\

/e/Develop/Qt5.4/Tools/mingw491_32/bin:\

/e/Develop/Python3.4

这里让Perl的位置在Git之前,因为ActivePerl是官方推荐的Perl,Git中也有Perl,但是我尝试了一下,使用下列命令的时候会出错:

"GetOptionsFromArray" is notexported by the Getopt::Long module

Can‘t continue after import errors atinit-repository line 196

BEGIN failed--compilation aborted atinit-repository line 196.

导致无法进行,所以尽量使用ActivePerl来完成任务。

 

7、使用Perl命令添加库

标准情况下,使用

perl init-repository就可以了。

如果需要指定初始化的库,那么使用–module-subset指定模块。因为我需要选用并且测试Qt3D,所以这么写:

perl init-repository–module-subset=qtbase,qtsvg,qtdeclarative,qttools,qtxmlpatterns,qtdoc,qlalr,qtrepotools,qtqa,qtlocation,qtgraphicaleffects,qtimageformats,qtxmlpatterns,qtquickcontrols,qt3d

如果上次没有完成,那么可以指定-f来强制重新初始化。这其中可能要求多次输入密码,密码没有回显,请注意。

 

8、这个时候开始configure编译了,一般来说只需要

configure.bat ^

-developer-build -confirm-license-opensource ^

-debug-and-release

就可以了。

 

9、使用mingw32-make进行编译。命令是

mingw32-make -j 4

使用四个线程对Qt进行编译。

 

10、由于是developer-build,最好不要makeinstall,直接在源码上使用吧。因为开发者版可能有各种各样的问题,所以在这个时候排错会好一些。我就是使用debug版进行错误排除的。

Qt 5的git源码编译