centos安装 distcc+ccache 加快c/c++编译

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

  1. 安装distcc
#解压 
tar -xvf distcc-3.3.3.tar.gz
#安装
cd distcc-3.3.3 
./configure && make && sudo make install
  1. 安装ccache,一条命令搞定
yum install -y ccache
  1. 配置
    假设distcc要部署在三台机器上,他们分别是
    192.168.1.2
    192.168.1.3
    192.168.1.4
    那么首先要在这三台上,做0、1、2步骤。
    然后编辑.bashrc (vim ~/.bashrc)在最后添加如下内容
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 让配置生效,否则只有下次登陆会话的时候才会生效。

  1. 运行distccd

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
  1. 客户端配置运行,主要是CC和CXX两个环境变量
    使用cmake时,
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++编译耗时长的问题。

猜你喜欢

转载自blog.csdn.net/niu91/article/details/111491038
今日推荐