ccache编译器缓存使用方法

news/2024/7/5 1:37:57

ccache(全称:compiler cache)是一个编译器缓存,该工具会高速缓存编译生成的信息,并在编译的特定部分使用高速缓存的信息,比如头文件,这样就节省了通常使用 cpp 解析这些信息所需要的时间。

  • ccache 主页:https://ccache.dev/

  • 文档地址:https://ccache.dev/documentation.html

  • GitHub 源码:https://github.com/ccache/ccache

1. 安装 ccache

要安装 ccache,执行以下命令:

sudo apt install ccache  

2. qmake 设置

打开 .pro,添加以下配置,ccache 就可以工作了:

QMAKE_CXX = ccache $$QMAKE_CXX 

从 Qt 5.9 开始,有一个更简单的方式:

load(ccache)

3. cmake 配置

在 CMakeLists.txt 中添加以下配置,将 ccache 作为编译命令和链接命令的启动器:

find_program(CCACHE_FOUND ccache)
if(CCACHE_FOUND)set_property(GLOBAL PROPERTY RULE_LAUNCH_COMPILE ccache)set_property(GLOBAL PROPERTY RULE_LAUNCH_LINK ccache)
endif(CCACHE_FOUND)

4. 效果

配置完成之后,再来测试一下:

Image

参考文献

  • https://mp.weixin.qq.com/s?__biz=MzAxNDI5NzEzNg==&mid=2651163043&idx=1&sn=9082a136f14c9586d8a72be97cbb1c27&chksm=806458fcb713d1ea5eab2edb7ecdfabbf86165f6172bfdbd002528c957838be701fb9ca16dbe&mpshare=1&scene=24&srcid=0709FB78i4AaHNqtYsLaNtbs&sharer_sharetime=1625834138005&sharer_shareid=f31a2d9bea8fe6bce82834cf71333cb3&exportkey=AUSJiWDtVBsa9EtDl2rFNRA%3D&pass_ticket=b92SRe8RGSpIbHb2R98n172UQiBomBLx9wlg3U9WGxPCn7qQlAyUTpoDSsBS4cAI&wx_header=0#rd

http://lihuaxi.xjx100.cn/news/247483.html

相关文章

torch.argsort()torch.sort()用法

函数原型1: torch.argsort(input, dim- 1, descendingFalse) → LongTensor参数: input:(Tensor)输入张量 dim:(int类型)要排序的维度 descending:(布尔类型)&#xff…

主机入侵防御系统(HIPS)分析

主机入侵防御系统(Host Intrusion Prevent System,HIPS)是近几年出现并迅速发展的新兴产物,与传统意义的防火墙和杀毒软件不同,它并不具备特征码扫描和主动杀毒等功能,所以想用它来替换传统杀毒软件然后安枕…

“智享未来 知行合一”,开为科技AI产品发布会于2月6日召开

届时,开为科技将展示系列装有自研人脸识别算法的人工智能硬件产品,包括人证比对一体机、人脸识别双面闸机、人脸访客广告机等。 过去一年,人工智能的新闻铺天盖地,发展速度之快让人目不暇接,各大巨头纷纷布局&#xf…

Spring中WebApplicationContext

ApplicationContext是Spring的核心,Context我们通常解释为上下文环境,我想用“容器”来表述它更容易理解一 些,ApplicationContext则是“应用的容器”了:P,Spring把Bean放在这个容器中,在需要的时候,用getB…

如何发表一篇好的文章

1. 如何确定一个研究方向? 刚开始的研究课题,需要依靠导师,对领域内有一定了解,可能会寻找到适合自己的方向。 确定研究方向要看课题组的研究积累,从自己角度出发,有个师兄做过这个方向会带来很多帮助&…

现代循环神经网络之LSTM

长短期记忆网络LSTM LSTM中所包含的三个门:ftf_tft​、iti_tit​、oto_tot​, ftf_tft​:遗忘门,控制保留了多少旧记忆单元Ct−1C_{t-1}Ct−1​的内容。 iti_tit​:输入门,控制采用多少来自CtC_tCt​的新数…

AppCan 学习

2019独角兽企业重金招聘Python工程师标准>>> AppCan 学习 AppCan是以web前端开发方式来开发移动app的解决方案。下面是一些记录: 1.注意 uexWindow.open和uexWindow.openPopover的不同,后者是pop,pop里不能在打开window了。 2.…

什么是跨域?怎么解决跨域问题?

什么是跨域? 跨域,指的是浏览器不能执行其他网站的脚本。它是由浏览器的同源策略造成的,是浏览器施加的安全限制。 所谓同源是指,域名,协议,端口均相同,不明白没关系,举个栗子&#…