分布式编译工具distcc以及相关项目介绍
时间:2008-03-28
来源:互联网
译者:linuxsir不开花
E-mail:[email protected]
文章内容很长,无法全文贴出来,全文在附件
前言
这里介绍了distcc和ccache,dmucs,ccontrol,crosstool等几个相关的项目,主要是其项目主页内容的翻译,我的英语奇烂,翻译的不准确还请见谅。
Distcc:一个快速,自由的分布式C/C++编译器
对我来说,速度提供了真实的现代感。
--Aldous Huxley
Distcc是个通过网络上的若干台机器用来分布式编译C,C++,目标C或目标C++代码的程序。distcc应该总是产生如同本地编译一样的输出,它很容易安装和使用,并且通常比本地编译要快很多。
distcc不要求所有的机器共享文件系统,有同步的始终,或者安装有同样的库和头文件。当安装了交叉编译器,它们甚至可以使用不同的处理器和操作系统。
正想写信告诉你我们在计算工作中正在使用distcc,它很棒。我们有一个机架的至强机 器,用于我们的工作,把它们作为编译场来编译我们的~1MLOC C++树(当我们更改某些头文件, 在一个单CPU的机器重新编译时上要花费若干小时)。我们尝试过使用SUN的网格引擎来做这 (我们已经使用它来调度计算任务),但是
一分钟快速指南:
1.对于每个机器,下载distcc,解压,运行如下命令
./configure && make && sudo make install
注:configure时可选--with-gtk
2.在每个服务端,运行distccd –daemon ,使用 --allow选项限制访问。
3.把服务端的名字放进你的环境:
export DISTCC_HOSTS='localhost red green blue'
4.编译!
cd ~/work/myproject; make -j8 CC=distcc
distcc在GNU/Linux上开发,但是已经被移植到别的系统,包括 FreeBSD,NetBSD,Darwin,Solaris,HP-UX,IRIX,Cygwin和BSD/OS。 对于每个任务,distcc发送预处理完的源代码到网络上,网络内每个运行distccd守护程序的 机器安装了合适的编译器(最好是相同版本的编译器)。
distcc本身并不是一个编译器,而是个GNU C/C++ 编译器(gcc)的前端。(有准备支持别的编 译器,但主要专注于gcc),几乎所有gcc选项和特性工作的如同平时一样。
Distcc被设计成使用-j 选项并行编译,使用GNU make或SCons,或是别的编译工具。文件频 繁的通过网络需要花费一些时间,但在客户机上只需要很少几个周期。对于客户CPU,所有的文 件都可以在远程“免费”编译是很有用的。
distcc的开发始于2002年。它可靠和成功的编译大型的,复杂的和重量级的软件系统。所知的 使用distcc正确编译的软件包括Linux内核,rsync,KDE,GNOME(通过GARNOME),Samba和 Ethereal。
对于少量的机器,distcc接近于新型扩展:在单个奔腾IV@1.7G的机器上编译Linux 2.4.19
使用distcc 0.15花了6分钟45妙。通过一个100M的交换器,使用三台这样的机器花了2分 钟30秒:快了2.6倍。理论上(还没达到)最大速度是3倍,所以在这种情况下distcc的扩展 效率是89%。
你并不需要很多可用的机器:一个笔记本和一个台式机肯定要比笔记本自己要快。
这里有一些单独可用的工具,可以增强或支持ditcc:
ccache 缓存编译输出来加速编译。
Dmucs帮助distcc选择合适的服务端。
Ccontrol 并行的中央控制,缓冲和分配,甚至在编译时也可以。
Crosstool自动构建交叉编译工具链。
DistccWebView 是个显示你的哪个服务端在运行和编译的CGI。
Tcpbalance 是个和distcc一起工作的很好的,使用Erlang写的负载平衡TCP**。
............................
全文在附件
作者: 不开花 发布时间: 2008-03-28
支持 ~
作者: tfkdmwmqtr 发布时间: 2008-03-28
作者: foo2008 发布时间: 2008-03-28
作者: kangtian 发布时间: 2008-03-28
作者: kangtian
可是,我到哪里去找能帮我编译的电脑呢?
|
作者: foo2008 发布时间: 2008-03-28
作者: kangtian 发布时间: 2008-03-28
作者: d00m3d 发布时间: 2008-03-29
一台机器cent0S5.1 gcc4.1.2-14 binutils2.17.50.0.6
另一台gentoo2007 gcc.4.1.1-r binutils2.16??
准备把gentoo的gcc升到4.1.2, binutils升到2.18, centos的bintil升到2.18再试试
作者: seismo 发布时间: 2008-04-02
热门阅读
-
office 2019专业增强版最新2021版激活秘钥/序列号/激活码推荐 附激活工具
阅读:74
-
如何安装mysql8.0
阅读:31
-
Word快速设置标题样式步骤详解
阅读:28
-
20+道必知必会的Vue面试题(附答案解析)
阅读:37
-
HTML如何制作表单
阅读:22
-
百词斩可以改天数吗?当然可以,4个步骤轻松修改天数!
阅读:31
-
ET文件格式和XLS格式文件之间如何转化?
阅读:24
-
react和vue的区别及优缺点是什么
阅读:121
-
支付宝人脸识别如何关闭?
阅读:21
-
腾讯微云怎么修改照片或视频备份路径?
阅读:28