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. 效果

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

参考文献

  • 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

ccache编译器缓存使用方法相关推荐

  1. android studio 导入库提示失败的处理方法以及androidstudio 清理缓存的方法

    错误提示如下图 方法1: 导入库的时候时候回提示失败,原因呢就是远程的库没有下载过来,这个时候需要清理下缓存在重新打开就可以了 清理缓存的方法如下图 如果换没有好那么看看方法二 去build下看看ma ...

  2. 前端——解决微信网页清除缓存的方法

    前端--解决微信网页清除缓存的方法 参考文章: (1)前端--解决微信网页清除缓存的方法 (2)https://www.cnblogs.com/fkcqwq/p/9604184.html 备忘一下.

  3. linux文件中链接文件系统,一种基于Linux文件系统文件链接的缓存LRU方法

    一种基于Linux文件系统文件链接的缓存LRU方法 [技术领域] [0001]本发明涉及信息技术领域,特别是涉及一种基于Linux文件系统文件链接的缓存LRU方法. [背景技术] [0002]目前,随 ...

  4. 浅析ThinkPHP缓存之快速缓存(F方法)和动态缓存(S方法)

    系统默认的缓存方式是采用File方式缓存,我们可以在项目配置文件里面定义其他的缓存方式,例如,修改默认的缓存方式为Xcache(当然,你的环境需要支持Xcache) 对于File方式缓存下的缓存目录下 ...

  5. java 强制清除缓存_IDEA强制清除Maven缓存的方法示例

    重新导入依赖的常见方式 下面图中的刷新按钮,在我的机器上,并不能每次都正确导入pom.xml中写的依赖项,而是导入之前pom.xml的依赖(读了缓存中的pom.xml). 当然除了这些,还可以下面这样 ...

  6. Linux手动释放缓存的方法

    Linux手动释放缓存的方法 1. 错误状态 2. 解决办法 1. 错误状态 这一年为什么文章少了呢,因为开发一直没停过,开发遇到的问题经常让人头大. 比如今天遇到个问题,启动一个服务去编译文件,直接 ...

  7. jquery ajax缓存问题解决方法小结

    jquery ajax缓存问题解决方法小结 参考文章: (1)jquery ajax缓存问题解决方法小结 (2)https://www.cnblogs.com/zhuyeshen/p/11599254 ...

  8. 【Vue】—计算属性缓存VS方法以及侦听器的区别

    [Vue]-计算属性缓存VS方法以及侦听器的区别

  9. 浏览器缓存机制及一些缓存问题解决方法

    参考: http://bbs.csdn.net/topics/330028896  浏览器缓存机制 http://www.docin.com/p-591569918.html  浏览器缓存的一些问题的 ...

最新文章

  1. requirednew基于xml配置日志不回滚_Elasticsearch配置IK分词器的远程词库
  2. OpenCV车牌/数字识别
  3. 研究院正式启动“智源学者计划”,公布候选人名单,并发布首个联合实验室...
  4. Mysql数据类型之字符串的案例介绍(含latin1下varchar的最大长度是65532还是65533)
  5. mysql 5.7.17源码包_centos7 mysql5.7.17源码安装
  6. ClickHouse安装部署与SQL实战
  7. 百度商桥放在php网站哪里_网站优化的几个重要技巧,你知道吗?
  8. 历史上那些差点被扼杀的数学天才,考试、偏见都是凶手
  9. python排版_python排版
  10. linux写含输入输出的代码,linux系统管理-输入输出
  11. 查看服务器操作系统版本信息,查看服务器操作系统版本信息
  12. windows10家庭版下找不到gpedit.msc
  13. android检测usb设备——usb打印机
  14. 网络原理之TCP/UDP IP
  15. informatica 许可_informatica 常见问题及解决方案
  16. 做律师的风险不止于此啊!!
  17. tf.train. string_input_producer QueueRunner add_queue_runner Coordinator start_queue_runners
  18. 1179 -- N!
  19. 比尔盖茨宣布其将在两年后退休!!!
  20. Java I/O系统

热门文章

  1. 命令别名的设置alias,unalias
  2. Ali RocketMQ与Kafka对照
  3. I.MX6 Android frameworks services 文件架构
  4. Rhel6-heartbeat配置文档
  5. 三层交换机vlan间访问(第一种方式)
  6. 微软,您的.net为中国程序员带来了什么?
  7. 我希望支持JavaScript GraphQL实现的API
  8. javascript_JavaScript疲劳疲劳
  9. 将Spring Boot项目打包成jar包war包
  10. oracle的表几种连接比较,几种表连接方式的使用场景