# Ccache (简体中文)

翻译状态： 本文是英文页面 Ccache 的翻译，最后翻译时间：2017-01-03，点击这里可以查看翻译后英文页面的改动。

Ccache 是一个编译工具，可以加速 gcc 对同一个程序的多次编译。尽管第一次编译会花费长一点的时间，有了`ccache`，后续的编译将变得非常非常快。

## 安装

安装 位于 官方软件仓库 的 ccache 软件包。

## 配置

### 为 makepkg 启用 ccache

要在 makepkg 启用 ccache，请编辑 `/etc/makepkg.conf`. 在 `BUILDENV` 中删除 ccache 前的感叹号：

     BUILDENV=(fakeroot !distcc color ccache !xdelta)

Note: 如果要编译 KDE ，需要不要导出 CPP 而是导出 CXX — 这将会避免一些错误。

### 启用命令行

如果从命令行编译而不是生成软件包，也可以使用`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.

## 参阅

- ccache 手册

Category:

- Package development (简体中文)