Ccache (简体中文)
Ccache 是一个编译工具,可以加速 gcc 对同一个程序的多次编译。尽管第一次编译会花费长一点的时间,有了ccache
,后续的编译将变得非常非常快。
Contents
安装
配置
为 makepkg 启用 ccache
要在 makepkg 启用 ccache,请编辑 /etc/makepkg.conf
. 在 BUILDENV
中删除 ccache 前的感叹号:
BUILDENV=(fakeroot !distcc color ccache !xdelta)
启用命令行
如果从命令行编译而不是生成软件包,也可以使用ccache
提高速度。
先修改 $PATH
,添加ccache
所在路径。
export PATH="/usr/lib/ccache/bin/:$PATH"
可以将其加入 ~/.bashrc
,这样以后可以一直使用。
如果使用此 PATH,makepkg 也会启用 ccache。
启用 colorgcc 支持
colorgcc 也是一个编译器外壳,所以需要确保外壳的调用顺序是正确的。
export PATH="/usr/lib/colorgcc/bin/:$PATH" # As per usual colorgcc installation, leave unchanged (don't add ccache) export CCACHE_PATH="/usr/bin" # Tell ccache to only use compilers here
colorgcc 需要调用 ccache 而不是真正的编译器。编辑/etc/colorgcc/colorgccrc
修改所有/usr/bin
路径为/usr/lib/ccache/bin
:
/etc/colorgcc/colorgccrc
g++: /usr/lib/ccache/bin/g++ gcc: /usr/lib/ccache/bin/gcc c++: /usr/lib/ccache/bin/g++ cc: /usr/lib/ccache/bin/gcc g77:/usr/bin/g77 f77:/usr/bin/g77 gcj:/usr/bin/gcj
Misc
修改缓存目录
可以将缓存目录 ~/.ccache
配置到其它地方,例如 SSD 或 ramdisk:
export CCACHE_DIR=/ramdisk/ccache # ccache 将使用这个环境变量给出的缓存目录
CLI
此外可以使用 ccache 命令行工具。
显示统计数据:
$ ccache -s
清空缓存:
$ ccache -C
makechrootpkg
makechrootpkg 也可以使用 ccache,要在清理 chroot 后保留缓存,可以使用 makechrootpkg 的 -d
选项将 cache 目录从普通系统绑定到 chroot:
$ mkdir /path/of/chroot/ccache
$ makechrootpkg -d /path/to/cache/:/ccache -r /path/of/chroot -- CCACHE_DIR=/ccache
这样 chroot 中就可以和正常系统中一样配置和使用 ccache.