平时完整编译一个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(有待实践) |