distcc 可以在编译服务器上使用 ccache 吗?

distcc 可以在编译服务器上使用 ccache 吗?

我知道ccache可以用作distcc编译器包装器,但是也可以做相反的事情吗?

我有一堆树莓派使用 distcc 在具有更快 CPU 和更快 I/O 的 x64 机器上交叉编译他们的 ARM 二进制文件的机器。

ccache由于我经常在所有树莓派上编译相同的软件,因此我认为如果编译服务器可以缓存并重用一些已编译的对象以节省一些时间,那就太好了。

还是主要的构建时间都花在了覆盆子本身上?

答案1

你的问题并不完全清楚,但我认为你的意思是如果 rapsberry pi A 使用 distcc 构建,你希望 distcc 将其缓存在你的服务器上,这样 raspberry pi B 就不会重新编译它?

现在ccache已经支持memcached了,所以你可以添加memcached来缓存结果(查看dev/memcachedccache的分支)。您也不需要将其存储在与 distcc 相同的服务器上。您可以将其存储在 AWS 上,并且您的树莓派只会将任何缓存未命中发送到 distcc,这实际上正是您想要的

安装内存缓存:

sudo apt-get install memcached

export MEMCACHED_SERVERS=localhost

sudo service memcached restart

对于 ccache (更新到我链接的分支后)

sudo apt-get install libmemcached-dev

./configure --enable-memcached

make -j4 && sudo make install

然后你可以通过以下方式告诉 ccache 你的服务器的位置:

export CCACHE_MEMCACHED_CONF="--SERVER=localhost"

查看更多信息: https://gist.github.com/itensionanders/2bd0056027f8308d4cd8

相关内容