XCODE 4.0.2 & 4.1分布式编译

来源:互联网 发布:淘宝会员名可以改吗 编辑:程序博客网 时间:2024/06/03 16:59

转载请注明出处:http://blog.csdn.net/horkychen

(译注:我一直思考如何把旁边的电脑也用来一起编译一个大工程,今天发现了这份资料。先翻译一下,找时间实践。)

不知道是什么原因,XCode 4.x似乎不支持分布式编译了。虽然可以通过定义distcc服务器启用分布式编译,但基本上还是在本地工作。

仔细看看编译日志:

setenv DISTCC_HOSTS localhost

所以呼叫distcc后没有带来期望的网络处理事务。做上面的设定需要重写/Developer/usr/etc/distcc/hosts 和 ~/.distcc/hosts. 经过一顿Google后,找到了一个伎俩: 写个代理脚本(proxy script)呼叫distcc. 无论如何,它确实可以工作!开始先确保有一个XCode的安装包. (译注:即使不做这件事,也最好从Apple Developer Center下载包安装,而不是从App Store上直接安装。好处是,当你想要重装时,不要再下了。毕竟速度太慢!)

首先, 创建~/.distcc/hosts文件,distcc程序首先会检索这里. 然后输入如下的内容:

myfirstserver/n,cpp,lzomysecondserver/n,cpp,lzolocalhost/n,cpp,lzo

server可以是主机名称或IP地址,n表示你希望distcc运行的进程数,通常是电脑的CPU数或在此基础上加1。我倾向于选择小于本地最大进程数的数字,这会让编译过程更平稳。设置好后保存文件。

打开一个终端,并依次执行:

cd /Developer/usr/binmv distcc distcc.orignano distcc

使用vi或emac都可以,那并不重要。然后填入新的distcc:

#!/bin/shMY_DISTCC_HOSTS=`cat ~/.distcc/hosts`export DISTCC_HOSTS="--randomize $MY_DISTCC_HOSTS"/Developer/usr/bin/distcc.orig "$@"exit $?

保存并退出 (ctrl-o, ctrl-x).

chmod a+x distcc

现在,理论上应该可以工作了,你可以在XCode中享受在网络中分布式编译了。不过,速度还会很慢。你可以观察到并没有完全发挥电脑的能力,每个电脑上只在跑一个进程。

在XCode有一个内建的参数设定并行编译进程数:PBXNumberOfParallelBuildSubtasks,它在XCode 4中被改掉了。如果你需要8个并行编译任务,你要这么做:

defaults write com.apple.dt.xcode IDEBuildOperationMaxNumberOfConcurrentCompileTasks 8

…你可以把8改成你期望的数定. 通常这些数字之和应当是.distcc/hosts中/n值之和。

重启XCode! 

  *原文地址:http://phaser.gfxile.net/wp/2011/07/xcode-4-0-2-and-4-1-distributed-building/ 

   *关于distcc,看这里

原创粉丝点击
热门问题 老师的惩罚 人脸识别 我在镇武司摸鱼那些年 重生之率土为王 我在大康的咸鱼生活 盘龙之生命进化 天生仙种 凡人之先天五行 春回大明朝 姑娘不必设防,我是瞎子 11个月宝宝粘人怎么办 一岁宝宝脸冻了怎么办 2个月宝宝粘人怎么办 8个月宝宝粘人怎么办 9个月宝宝粘人怎么办 8个月婴儿粘人怎么办 4个月宝宝粘人怎么办 7个月宝宝粘人怎么办 8个月孩子太粘人怎么办 7个月宝宝太粘人怎么办 两岁宝宝粘人怎么办 孩子屁股被打了怎么办 长期被骂的孩子怎么办 儿童感冒咳嗽怎么办最有效 打了排卵针不排卵怎么办 孩孑上课不专心怎么办 4岁上课不听讲怎么办 孩子上课不认真听讲怎么办 孩子做什么都慢怎么办 7岁上课不听讲怎么办 打孩子脸肿了怎么办 一岁宝宝太调皮怎么办 怀孕早期喝了酒怎么办 怀孕期间喝了酒怎么办 一岁宝宝多动怎么办 3岁前儿童多动症怎么办 好动症的孩子该怎么办 18个月宝宝腹泻怎么办 8个月小孩发烧怎么办 八个月大宝宝发烧怎么办 8个月宝宝拉稀水怎么办 八个月宝宝38度怎么办 8个月的宝宝发烧怎么办 八个月大的宝宝拉肚子怎么办 9孩子上课坐不住怎么办 3岁宝宝太皮怎么办 4岁的宝宝多动症怎么办 小孩好动注意力不集中怎么办 乐扣加热变形了怎么办 3岁宝宝咳嗽厉害怎么办 六个月婴儿呕奶怎么办