使用ccache加速Qt编译过程

之前听说过ccache可以加快大型工程的编译速度,一直没时间使用,最近看到一篇关于加速Qt编译过程的文章,

就自己动手试了一下,因为Ubuntu版本是14.10 有点老,只能通过源码方式安装,下面只记载了安装过程中出现的问题

因为网上有很多安装教程,这里就不列了。

1. ccache的安装

去https://ccache.samba.org/下载最新的版本:

ccache依赖于asciidoc,ccache在安装时有2个问题:

xmllint和xsltproc会提示出错,参考这篇文章解决

https://groups.google.com/forum/#!topic/asciidoc/FC-eOwU8rYg

在我的机器上,当时xsltproc还是提示错,参考下面这篇文章后
https://github.com/obgm/libcoap/issues/26
发现是doc/MANUAL.xml的问题,当时这个文件大小是0,没有内容,删除之后,重新make install成功

2. ccache的使用

确定ccache的位置

#which ccache

/usr/local/bin/ccache

#cd /usr/local/bin/
root@vmw:/usr/local/bin# which gcc
/usr/bin/gcc  此时gcc还是原始的gcc,默认的gcc是在/usr/bin下,

#ln -s ccache /usr/local/bin/gcc
#ln -s ccache /usr/local/bin/g++
#ln -s ccache /usr/local/bin/cc
#ln -s ccache /usr/local/bin/c++
#export PATH="/usr/local/bin/ccache:$PATH"

通过如上命令设置过之后,系统就会使用/usr/local/bin下的gcc了,即包含了ccache封装的版本。原因是:

PATH环境变量中,/usr/local/bin在/usr/bin之前,所以会优先使用此gcc

declare -x PATH="/usr/local/bin/ccache:/opt/tools/docbook-xsl-1.76.0/tools/bin:/opt/hisi-linux/x86-arm/arm-hisiv500-linux/target/bin:/opt/kaifaban/i.mx28x/tools/gcc-4.4.4-glibc-2.11.1-multilib-1.0/arm-fsl-linux-gnueabi/bin:/opt/hisi-linux/x86-arm/arm-hisiv400-linux/target/bin:/opt/hisi-linux/x86-arm/arm-hisiv300-linux/target/bin:/opt/tools/qt5.5/Tools/QtCreator/bin:/opt/hisi-linux/x86-arm/arm-hisiv200-linux/target/bin:/opt/hisi-linux/x86-arm/arm-hisiv100-linux/target/bin:/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin"

#which gcc

/usr/local/bin/gcc 此时的gcc已经是ccache封装的版本

交叉编译Qt时,需要修改qmake.conf中对应的:

QMAKE_CC                = ccache arm-hisiv200-linux-gcc
QMAKE_CXX               = ccache arm-hisiv200-linux-g++
QMAKE_LINK              = ccache arm-hisiv200-linux-g++

QMAKE_LINK_SHLIB        = ccache arm-hisiv200-linux-g++

测试时,第一次编译Qt编译时间还是很长,查询编译日志可以发现ccache的身影,

make clean之后再编,奇迹发生了,日志的打印速度变得飞快,编译时间和之前不是一个数量级的。

后面会尝试编译Android。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值