打印

分布式编译(distcc)

[复制链接]
139|0
手机看帖
扫描二维码
随时随地手机跟帖
跳转到指定楼层
楼主
冷冻链|  楼主 | 2018-9-28 17:42 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
平时完整编译一个linux kernel好点的机器大概需要半小时,如果编译一个

android映象或者公司自己的映象那还得需要更长的时间,最



近发现一个在条件允许的情况下把时间缩短的好工具--分布式编译distcc,当然这

个条件是你有多台编译环境一样的机器。



以在ubuntu下为例说下安装和配置:

1, sudo apt-get install distcc

2, 配置文件/etc/default/distcc

把STARTDISTCC="false"改为STARTDISTCC="true"

把ALLOWEDNETS="172.18.0.0/24"改为你自己的局域网的网段,

如:ALLOWEDNETS="172.18.0.0/24"或 ALLOWEDNETS="192.168.0.0/16"

把LISTENER="127.0.0.1"屏掉: #LISTENER="127.0.0.1"

3,启动distcc服务: sudo /etc/init.d/distcc start或者重启机器

4,配置编译器

ln -s /usr/bin/distcc /usr/lib/distcc/arm_v5t_le-gcc

ln -s /usr/bin/distcc /usr/lib/distcc/arm_v5t_le-g++

ln -s /usr/bin/distcc /usr/lib/distcc/arm_v5t_le-c++

ln -s /usr/bin/distcc /usr/lib/distcc/gcc

ln -s /usr/bin/distcc /usr/lib/distcc/g++

ln -s /usr/bin/distcc /usr/lib/distcc/c++

5,添加环境变量

export DISTCC_HOSTS="localhost 192.168.1.35 192.168.1.16" // 使用哪些机

器来进行编译,localhost是自己的机器

export DISTCC_VERBOSE=1 //给出调试信息

export DISTCC_LOG=”/var/log/disstcc.log” //这是存放错误信息的地方,可以

自己更改位置





然后其它几台机器也同样安装和配置好distcc,最后不管你在任何一台机器上使用

distcc来进行分布式编译,其它几台机器就会为你分担



来加快编译速度。



另外,有的说不要把自己的机器添加到DISTCC_HOSTS中,这样让自己的自己进行

configure,link之类的操作,让其它机器专做编译的操作



使用的例子:

1, 编译uboot:

原来的命令: make ARCH=arm CROSS_COMPILE=arm_v5t_le-

现在的命令: make -j10 ARCH=arm CROSS_COMPILE="distcc arm_v5t_le-"



2, 编译linux kernel:

原来的命令: make ARCH=arm CROSS_COMPILE=arm_v5t_le- uImage modules

现在的命令: make -j10 ARCH=arm CROSS_COMPILE="distcc arm_v5t_le-" uImage

modules



3, 编译android(有待实践)

使用特权

评论回复

相关帖子

发新帖 我要提问
您需要登录后才可以回帖 登录 | 注册

本版积分规则

397

主题

397

帖子

0

粉丝