Ubuntu分布式编译distcc配置

本文详细介绍如何在Ubuntu环境下配置distcc实现分布式编译,包括Server端和Client端的设置步骤,以及通过nfs共享编译目录的方法,最后通过distccmon工具验证编译任务的分配情况。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

Ubuntu分布式编译distcc配置

Distcc分布式编译配置

  • 在Ubuntu上,可以使用distcc,搭建分布式编译环境。
  • 简单来说就是:让多台电脑,一起进行编译,从而加快编译速度。
  • 以下为Server端(Server端,帮助编译的PC),及Client端(客户端,就是自己的PC)。
Server端
  • 这里假定有2个Server,IP分别为 192.168.98.170、192.168.98.200
  • 安装distcc及nfs环境
sudo apt-get update
sudo apt-get install ccache
sudo apt-get install nfs-common
sudo apt-get install nfs-server
sudo apt-get install distcc
  • 关闭distcc自动启动
sudo vim /etc/default/distcc

# 修改该关键字如下
STARTDISTCC="false"
  • 手动启动distcc服务
# 用户:linduo
# --allow [允许的IP]
distccd --user linduo --daemon --allow 127.0.0.1 --allow 192.168.98.0/24 --listen 0.0.0.0 --nice 10 --jobs 16
  • 映射Client端编译目录
# 假设客服端已经开启了nfs共享
# 注意:映射路径需要相同
sudo mount 192.168.98.229:/home/linduo/Project/ /home/linduo/Project/
Client端
  • 假定客户端为1个,IP为 192.168.98.229
  • 安装环境
sudo apt-get update
sudo apt-get install ccache
sudo apt-get install nfs-common
sudo apt-get install nfs-server
sudo apt-get install distcc
  • 工程目录开启nfs共享
 sudo vim /etc/exports
 # 添加
 /home/linduo/Project/ 192.168.0.0/16(ro,sync,all_squash)
  • 重启nfs服务
sudo service nfs-kernel-server restart
  • 添加Server
sudo vim /etc/distcc/hosts

# 添加ServerIP
192.168.98.170
192.168.98.200
  • 在编译环境中加入distcc,这里由于原工程编译时,使用了ccache,因此直接修改了环境变量(具体加入方法,按工程具体toochains/编译工具为准)。
# 修改CCACHE环境变量 添加distcc
export CCACHE="distcc ccache"
测试
  • 编译工程,在客户端通过如下命令,查看任务分配
distccmon-text
  • 输出结果
  5372  Compile     XXXXXX.cpp                   192.168.98.170[1]
  5394  Compile     XXXXXX.cpp                   192.168.98.200[2]
  5418  Preprocess                                                localhost[2]
  5335  Preprocess 
  • 图形化工具,也可以使用图形化工具查看任务分配状态
# 运行即可
# 没有的话,通过apt安装即可
distccmon-gnome
### 加速 Ubuntu 环境下编译过程的最佳实践 #### 使用多核并行编译 为了充分利用现代计算机的多核心处理器,在编译过程中可以启用多个线程来加速编译。通过设置`make`命令中的`-j`参数指定并发作业的数量,通常建议设为CPU核心数加一。 ```bash make -j$(nproc) ``` 这会告诉构建系统尽可能多地利用可用的核心来进行并行处理[^1]。 #### 配置 ccache 缓存编译结果 ccache 是一个用于加快 C/C++ 编译速度的缓存工具。当相同的源文件再次被编译时,它可以显著减少重新编译所需的时间。安装方法如下: ```bash sudo apt-get install ccache export CC="ccache gcc" export CXX="ccache g++" ``` 上述环境变量配置使得每次调用 GCC 或 G++ 时都会先经过 ccache 处理[^2]。 #### 合理调整优化级别 GCC 提供了不同的优化选项 `-O0`, `-O1`, `-O2`, `-O3` 来控制编译期间执行的不同程度的代码优化。对于开发阶段可以选择较低级别的优化以缩短编译时间;而在发布版本则可采用更高级别的优化提高性能。 ```bash gcc -O2 source.c -o program ``` 这里选择了较为平衡的选择-O2作为示例[^3]。 #### 利用分布式编译集群 DistCC 如果拥有不止一台机器,则可以通过 distcc 实现跨网络节点分发编译任务。distcc 可以将部分工作分配给其他连接到同一局域网内的主机完成,从而进一步提升整体效率。 ```bash sudo apt-get install distcc echo "/usr/lib/distcc/bin/" | sudo tee /etc/profile.d/distcc.sh source /etc/profile.d/distcc.sh ``` 以上操作完成了基本的 distcc 设置,并将其路径加入到了系统的 PATH 中以便后续使用。
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

林多

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值