distcc 是一个分布式C/C++编译工具,ccache则会高速缓存编译信息,两者结合会大大调高编译速度。
0. 安装前先要安装gcc和g++以及python环境,把Binutils工具包也装一下。
yum install -y gcc
yum install -y gcc-c++
yum install -y python36
yum install -y python3-devel
yum install -y binutils-devel
然后去https://distcc.github.io/ 下载distcc,推荐新版本
https://github.com/distcc/distcc/releases/download/v3.3.3/distcc-3.3.3.tar.gz
#解压
tar -xvf distcc-3.3.3.tar.gz
#安装
cd distcc-3.3.3
./configure && make && sudo make install
yum install -y ccache
export DISTCC_HOSTS="192.168.1.2 192.168.1.3 192.168.1.4"
export DISTCC_POTENTIAL_HOSTS="192.168.1.2 192.168.1.3 192.168.1.4"
export DISTCC_LOG="./distcc_runtime.log"
别忘了,source ~/.bashrc 让配置生效,否则只有下次登陆会话的时候才会生效。
distccd --daemon --allow 192.168.1.2/8 --user nobody --enable-tcp-insecure
检查一下
[root@localhost ~]# ps -ef|grep distcc
nobody 21779 1 0 Dec18 ? 00:00:00 distccd --daemon --allow 192.168.1.2/8 --user nobody --enable-tcp-insecure
nobody 21780 21779 0 Dec18 ? 00:00:00 distccd --daemon --allow 192.168.1.2/8 --user nobody --enable-tcp-insecure
nobody 21781 21779 0 Dec18 ? 00:00:00 distccd --daemon --allow 192.168.1.2/8 --user nobody --enable-tcp-insecure
nobody 21782 21779 0 Dec18 ? 00:00:00 distccd --daemon --allow 192.168.1.2/8 --user nobody --enable-tcp-insecure
nobody 21785 21779 0 Dec18 ? 00:00:00 distccd --daemon --allow 192.168.1.2/8 --user nobody --enable-tcp-insecure
CC="distcc ccache cc" CXX="distcc ccache g++" cmake ..
或者同步骤3一样加入用户配置文件中
export CXX=“distcc ccache g++”
我是用一个小工程测试的,使用distcc+ccache之后,编译时间从五分钟降低到了一分钟,感觉非常爽。另外编译时,可以在客户端通过distccmon-text n 查看分布式编译情况,(n代表n秒刷新一次),可以看到不同的源码文件会分布在不同的机器上编译,由此来提高效率。
diatcc+ccache 入门简单,方便易用,从一定程度上缓解了C/C++编译耗时长的问题。