【小技能】c分布式编译环境搭建

Distcc介绍

在这里插入图片描述

1.1Distcc本地可以配置成为server端或者user端。
1.2Server端生成distccd进程,并在3632端口监听任务。
1.3User端使用命令行,在执行make的时候,带入参数CC=distcc,根据服务器数量的多少,-j的数量一般可以将服务器数量*4。
1.4Distcc本地要指向使用的gcc / ar / ld等工具,服务器的编译工具必须是工程要使用的版本。
1.5User要执行预处理,这样在编译服务器上不需要同样一套代码,这样在部署上比共享文件夹类型的分布式编译系统简单很多。

Distcc安装配置

2.1 Server端安装可以使用:sudo apt install distcc
2.2 User端安装可以使用:sudo apt install distcc distccmon-gnome distcc-pump
2.3 Server和User端配置:

默认安装后distcc要配置在本地的PATH中,将/usr/lib/distcc加入即可:
在这里插入图片描述
默认配置的distcc指向的是本地的gcc,在嵌入式方向要修改编译器时,需要新建链接:
cd /usr/lib/distcc
sudo ln –s …/…/bin/distcc arm-eabi-gcc
sudo ln –s …/…/bin/distcc arm-eabi-g++

2.3 Server端配置:

STARTDISTCC="true"
# 下面的 /16表示前面的IP地址16位有效,即192.168.xx.xx的用户发过来的请求都接受
ALLOWEDNETS="127.0.0.1 192.168.0.0/16"
LISTENER=""
NICE="10"
JOBS=""
ZEROCONF="true"

2.4 User端检查当前可用服务器

distcc --show-hosts

2.5 在User端增加配置

[A-IP]:3632/32,cpp,lzo
[C-IP]:3632/16,cpp,lzo
[B-IP]:3632/8,cpp,lzo

演示和测试

3.1 将配置好的n台PC打开
3.2 User打开监控:distccmon-gnome
3.3 进入某个编译目录,使用make直接编译,观察监控
3.4 清空编译结果,使用make -j16编译,观察监控
3.5 清空编译结果,使用make -j16 CC = distcc编译,观察监控

【结论】使用distcc将编译任务会发送到编译服务器上,经过分布式编译利用多台机器的协作提升效率。

自动化部署(待开发和验证)

Distcc的安装和配置比较复杂,当添加多台服务器时,重复配置耗费大量人力,当配置出错时更是需要浪费时间定位,需要开发一部分脚本方便IT部门操作。
4.1 安装配置说明书,文本文件即可。
4.2 服务器配置脚本,使用setDistccEnvServer.sh xxxPATH即可将本机设置为server。
4.3 用户端配置脚本,使用updateDistccEnvServer.sh,即可将当前可用的server自动更新,在user上使用。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值