在使用CMake编译大型工程时。如果每次只是单独对一个文件进行修改还好,CMake可以针对修改单独编译,但往往只要对CMakeLists做一点小修改,整个工程就要重新编译,对于普通性能的电脑来说通常非常耗时。

ccache是一个编译器缓存,可以大幅度的提高工程重新编译的速度。网上的教程比较繁琐,亲测使用以下方法安装简单快捷:

cd ~
git clone https://github.com/ccache/ccache.git
cd ccache
mkdir build
cd build
cmake -DCMAKE_BUILD_TYPE=Release ..
make
sudo make install

我们使用

which ccache

返回位置通常为

/usr/local/bin/ccache

再次查看系统原本的编译器位置

which g++

一般情况下,系统原本的编译器位于

/usr/bin/

我们创建以下软连接,让系统选择编译器时优先使用ccache

cd /usr/local/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++

使用

ccache -M 10G

可以设置缓存空间大小

使用

ccache -s

可以查看ccache的使用情况

找一个工程进行测试,发现对于重新编译的情况,编译速度均有大幅度提升。

提高编译速度的方法——ccache的使用相关推荐

  1. C++加快编译速度的方法

    C++的主要优点是高性能, 但是说起编译速度,却只有低调的份了.如果不加以重视,编译速度极有可能会成为开发过程中的一个瓶颈.那么,为什么C++它就编译的这么慢呢? 我想最重要的一个原因应该是C++基本 ...

  2. make太慢了,加快编译速度的方法 make -j

    make太慢了,加快编译速度的方法 make -j 2018-01-18 09:04:05 gonghuihuihui 阅读数 21957  收藏 更多 分类专栏: linux 版权声明:本文为博主原 ...

  3. HighTec编译器提高编译速度

    当我们工程特别大时(尤其是基于AUTOSAR开发的工程,包含了BSW协议栈及MCAL,ASW的代码其c文件数量级可达上千)全编译一个工程需要很长时间. HighTec是增量式编译,每次只重新编译修改的 ...

  4. lambda 查询大量数据速度很慢_处理百万级以上的数据提高查询速度的方法

    处理百万级以上的数据提高查询速度的方法: 1.应尽量避免在 where 子句中使用!=或<>操作符,否则将引擎放弃使用索引而进行全表扫描. 2.对查询进行优化,应尽量避免全表扫描,首先应考 ...

  5. VS2013 加快编译速度 的方法整理

    VS2013 加快编译速度 的方法整理 1.更改项目设置 项目|属性|C/C++|代码生成|启用最小重新生成:Yes(/Gm) 项目|属性|C/C++|常规|调试信息格式:程序数据库(/Zi) 项目| ...

  6. lambda 查询大量数据速度很慢_处理百万级以上的数据提高查询速度的方法:

    处理百万级以上的数据提高查询速度的方法: 1.应尽量避免在 where 子句中使用!=或<>操作符,否则将引擎放弃使用索引而进行全表扫描. 2.对查询进行优化,应尽量避免全表扫描,首先应考 ...

  7. iOS - Xcode提高编译速度,增量编译,ccache

    前言 贝聊目前开发的两款App分别是贝聊家长版和贝聊老师版,最近因为在快速迭代开发新功能,项目规模急速增长,单个端业务代码约23万行,私有库约6万行,第三方库代码约15万行,单个客户端的代码行数约60 ...

  8. Ninja提升编译速度的方法-Android10.0编译系统(十)

    摘要:如何通过Ninja来提升Android编译速度 阅读本文大约需要花费10分钟. 文章首发微信公众号:IngresGe 专注于Android系统级源码分析,Android的平台设计,欢迎关注我,谢 ...

  9. 使用预编译头提高编译速度

    什么是预编译头 在介绍预编译头之前,有必要了解一下C/C++的编译方式.C/C++的编译单元是源文件(带有.c..cc..cpp等扩展名的文件),在编译一个源文件之前,预处理器会把这个源文件中所有通过 ...

最新文章

  1. mysql中没有内置函数_[mysql]MySQL中的内置函数
  2. ITSM为人服务,还是人为ITSM服务?
  3. 手把手教你写一个Java的orm框架(4)
  4. poj 1061 (扩展欧几里德算法)
  5. C# 通过pid获取hwnd / 通过pid查找hwnd
  6. 服务器硬件和算力,硬件科普Filecoin运维交付之业务部署
  7. ADB 基础命令使用
  8. 创业者眼中的小程序:某个岗位工资会翻番
  9. 小凡Linux国产网游《时空浩劫》安装+体验
  10. 多玩家游戏设计注意思的地方(转)
  11. redis的5种数据结构和基本操作
  12. XDebug的配置和使用(审计方法)
  13. 使用手机访问电脑上写的网页
  14. python生成热度图_python根据输入的数据在地图上生成热力图效果
  15. C#中数据库备份还原
  16. SuperMap iDesktopX _ 高德POI数据下载
  17. python进行谱曲_人工智能可以作曲吗?
  18. set_global_opts在PyEcharts中实现全局配置项
  19. signature=c751019741e6bb1ccbac4e13ac0b26c4,James Boswell
  20. 【python爬虫学习】cookie模拟登陆

热门文章

  1. 【云原生】前后端分离项目下 如何优雅的联调程序?
  2. Three.js拉伸扫描成型ExtrudeGeometry
  3. 医学百科医院全部信息爬取(转)
  4. Typora-setup-x64 0.9.93 下载及安装
  5. 微信小程序开发中常见的技术点梳理
  6. 重磅!南京java培训机构推荐
  7. java 程序员 和 三八女神节有什么神秘的关系,你晓得吗? 用Java 给女神绘制一张贺卡你会吗?
  8. vue项目关闭prettier尾随逗号问题
  9. Windows下Apache安装教程
  10. VBA word自动排版(8)——批量自动搜索并提取带有特定关键词的内容