Ubuntu安装配置ccache

Ubuntu安装配置ccache

内容

在 Ubuntu 中通过 ccache 加速编译流程的完整指南如下:


1. 安装 ccache

sudo apt update && sudo apt install ccache

2. 配置环境变量(推荐方式)

(1) 临时生效(仅当前终端会话)

export PATH="/usr/lib/ccache:$PATH"

(2) 永久生效(写入 Shell 配置文件)

echo 'export PATH="/usr/lib/ccache:$PATH"' >> ~/.bashrc  # Bash 用户
source ~/.bashrc

(3) 验证路径优先级

which gcc
# 输出应为: /usr/lib/ccache/gcc

3. 配置 ccache 参数

(1) 调整缓存大小(默认 5G)

ccache --max-size=10G  # 设置为 10GB

(2) 查看配置状态

ccache -s  # 显示命中率、缓存大小等信息

4. 在编译流程中启用 ccache

(1) 直接调用(适用于 Makefile)

make CC="ccache gcc" CXX="ccache g++"

(2) 自动适配(CMake 项目)

mkdir build && cd build
cmake -DCMAKE_C_COMPILER_LAUNCHER=ccache -DCMAKE_CXX_COMPILER_LAUNCHER=ccake ..
make -j$(nproc)

(3) Autotools 项目(如 ./configure)

./configure CC="ccache gcc" CXX="ccache g++"
make -j$(nproc)

5. 验证加速效果

  • 首次编译:正常耗时,生成缓存
  • 二次编译:速度显著提升(若代码无改动,命中率接近 100%)
ccache -s  # 查看缓存命中率统计

6. 高级配置

(1) 共享缓存(多用户/多项目)

# 所有用户共享缓存目录
sudo mkdir /shared_ccache
sudo chmod 0777 /shared_ccache
ccache --set-config=cache_dir=/shared_ccache

(2) 缓存清理

ccache -C  # 清空缓存
ccache -c  # 清理过期文件

(3) 实时监控

watch -n1 ccache -s  # 每秒刷新缓存状态

7. 常见问题处理

问题 解决方案
缓存未命中 检查 CCACHE_CPP2=yes 是否设置(部分项目需启用)
编译速度无改善 确认 ccache -s 显示缓存路径和命中率正常
磁盘空间不足 调整 --max-size 或清理旧缓存

总结

通过上述步骤,ccache 可将重复编译任务的速度提升 5-10 倍,尤其适合以下场景:

  • 频繁执行 make clean && make
  • 切换 Git 分支后的增量编译
  • 多开发者共享同一缓存目录

建议将 ccache 配置写入 CI/CD 流程,进一步优化团队协作效率。

本文作者:Gold_stein

本文链接:https://www.cnblogs.com/smartljy/p/18739760

版权声明:本作品采用知识共享署名-非商业性使用-禁止演绎 2.5 中国大陆许可协议进行许可。

posted @   Gold_stein  阅读(17)  评论(0编辑  收藏  举报
历史上的今天:
2024-02-26 [ABC173E] Multiplication 4
点击右上角即可分享
微信分享提示
💬
评论
📌
收藏
💗
关注
👍
推荐
🚀
回顶
收起
🔑
  1. 1 逃离地面 RAD & 三浦透子
逃离地面 - RAD & 三浦透子
00:00 / 00:00
An audio error has occurred.

作词 : 野田洋次郎

作曲 : 野田洋次郎

空飛ぶ羽根と引き換えに 繋ぎ合う手を選んだ僕ら

それでも空に魅せられて 夢を重ねるのは罪か

夏は秋の背中を見て その顔を思い浮かべる

憧れなのか、恋なのか 叶わぬと知っていながら

重力が眠りにつく 1000年に一度の今日

太陽の死角に立ち 僕らこの星を出よう

彼が眼を覚ました時 連れ戻せない場所へ

「せーの」で大地を蹴って ここではない星へ

行こう

もう少しで運命の向こう もう少しで文明の向こう

もう少しで運命の向こう もう少しで

夢に僕らで帆を張って 来たるべき日のために夜を超え

いざ期待だけ満タンで あとはどうにかなるさと 肩を組んだ

怖くないわけない でも止まんない

ピンチの先回りしたって 僕らじゃしょうがない

僕らの恋が言う 声が言う

「行け」と言う