分布式编译-IncrediBuild

作者: admin 分类: 开发工具 发布时间: 2013-04-22 09:04 ė4,235 浏览数 6没有评论
文章转自王牌软件
站长推荐:NSetup一键部署软件
一键式完成美化安装包制作,自动增量升级,数据统计,数字签名。应对各种复杂场景,脚本模块化拆分,常规复杂的脚本代码,图形化设置。无需专业的研发经验,轻松完成项目部署。(www.nsetup.cn)

IncrediBuild与本例的工程、Makefile、脚本上传了,下载地址:

http://download.csdn.net/detail/ceofit/4409315

IncrediBuild3.61.1下载地址:

http://download.csdn.net/detail/ceofit/4409322

开发大型项目一次编译过程经常几个小时甚至一天,光靠PC跑很难满足开发需求,再加上敏捷开发每日集成,可能还要运行大量的静态检查、测试用例执行等,所以,不可避免的需要使用分布式编译。

Windows下比较常用的分布式编译工具就是IncrediBuild了。本文讲一下IncrediBuild的安装、使用。

IncrediBuild的结构如下:

所以网络中需要有1台机子作为Coordinator,当然,这台机子也可以同时成为Agent,其余机子安装为Agent。

我使用的是incredibuild3.61.1。安装过程如下(一些主要步骤,中间一些默认过程省略):

1、安装Coordinator

双击安装包,首选会提示选择安装组件,即类型:

Coordinator也可以做Agent,所以勾选两个。

下一步,选择端口,这是Coordinator监听的端口,默认即可

下一步,配置Agent端口,也默认即可

其余一路下一步均默认安装即可。

 

2、安装Agent

组件只选择Agent:

选择Coordinator服务器:

这里填写安装为Coordinator的机器IP,端口填写Coordinator安装时的端口,此处为默认。

填写后可以点Test按钮测试连接,如有防火墙拦截,需放行此端口。提示成功如下:

 

下一步配置Agent端口使用默认:

一路默认,最终完成安装即可。

 

3、Agent配置

安装完成后在右下角托盘有一个图标,右键菜单如下:

如果安装过程中未配置Coordinate服务器IP,则可在此配置。

选择Agent Settings,打开配置窗口,找到Coordinator,可以设置IP、端口,也可以测试连接。

 

 

4、VS2005集成工具

IncrediBuild安装后会在VS的IDE上集成一个菜单

借助此菜单就可以分布式编译VS的工程了。编译时会有一个编译窗口显示分布式的机子和编译状态:

也可以双击右下角托盘图标查看(这是另一个编译截图):

编译后可正常生成可执行文件。

 

5、命令行编译

可以使用命令行写批处理完成自动编译。

使用IncrediBuild命令XGConsole,加参数完成:

/command=””:执行的编译命令,如make all

/profile=””:配置文件,xml格式。

只需这两个参数即可其中命令需要支持并行执行。如make all -j20。make的参数-jn表示make可支持最多20个并行执行。

profile配置文件配置集成、分布式的命令。具体可参考帮助文档,有详细说明,此处掠过不贴。

例如本例Profile.xml为:

 

  1. <?xml version=”1.0″ encoding=”UTF-8″ standalone=”no” ?>
  2. <Profile FormatVersion=”1″>
  3.     <Tools>
  4.         <Tool Filename=”make” AllowIntercept=”true” />
  5.         <Tool Filename=”cl” AllowRemote=”true” />
  6.         <Tool Filename=”link” AllowRemote=”true” />
  7.         <Tool Filename=”gcc” AllowRemote=”true” />
  8.         <Tool Filename=”gcc-3″ AllowRemote=”true” />
  9.     </Tools>
  10. </Profile>

编译的Makefile写为:

 

 

  1. VSCC=cl.exe
  2. VSLINK=link.exe
  3. vcall:main.obj test.obj test1.obj test2.obj test3.obj test4.obj test5.obj test6.obj test7.obj
  4.         $(VSLINK) *.obj /OUT:a.exe /LIBPATH:”D:\Program Files\Microsoft Visual Studio 8\VC\lib”
  5. main.obj:
  6.         $(VSCC) -c main.c
  7. test.obj:
  8.         $(VSCC) -c test.c
  9. test1.obj:
  10.         $(VSCC) -c test1.c
  11. test2.obj:
  12.         $(VSCC) -c test2.c
  13. test3.obj:
  14.         $(VSCC) -c test3.c
  15. test4.obj:
  16.         $(VSCC) -c test4.c
  17. test5.obj:
  18.         $(VSCC) -c test5.c
  19. test6.obj:
  20.         $(VSCC) -c test6.c
  21. test7.obj:
  22.         $(VSCC) -c test7.c
  23. clean:
  24.         rm -f *.exe *.obj

这样可以通过如下批处理脚本执行:

 

 

  1. xgconsole /command=”make vcall -j20″ /profile=”Profile.xml”
  2. pause

执行如下:

 

可以看出,命令一起启动后才执行,查看IncrediBuild窗口查看分布式过程。

 

6、Windows下Gcc编译

GCC编译与命令行编译类似,只不过Makefile与编译器不同而已。

Makefile为:

 

  1. CC=gcc-3
  2. all:main.o test.o test1.o test2.o test3.o test4.o test5.o test6.o test7.o
  3.         $(CC) *.o -o a
  4. main.o:
  5.         $(CC) -c main.c
  6. test.o:
  7.         $(CC) -c test.c
  8. test1.o:
  9.         $(CC) -c test1.c
  10. test2.o:
  11.         $(CC) -c test2.c
  12. test3.o:
  13.         $(CC) -c test3.c
  14. test4.o:
  15.         $(CC) -c test4.c
  16. test5.o:
  17.         $(CC) -c test5.c
  18. test6.o:
  19.         $(CC) -c test6.c
  20. test7.o:
  21.         $(CC) -c test7.c
  22. clean:
  23.         rm -f *.o *.exe

我用的CygWin的bin工具,这个版本的Cygwin在bin下的gcc.exe只是一个link文件,实际文件为gcc-3,命令行可以用gcc命令,但Makefile中如果用gcc,make all会提示无法创建进程。故CC=gcc-3。这个根据实际环境决定。

 

7、CygWin下编译

由于gcc编译用的是CygWin的gcc,所以Makefile不再修改。但CygWin下还没有IncrediBuild工具。故写个shell脚本实现,很简单:

  1. IBPATH=”/cygdrive/c/Progra~1/Xoreax/IncrediBuild”
  2. PATH=$PATH:$IBPATH
  3. xgconsole /command=”make all -j20″ /profile=”Profile.xml”

将IncrediBuild目录添加到PATH路径中即可。

执行命令./compile.sh如下:

可以正常执行。截图与其他大同小异。

OK,整个过程基本完成了。具体使用参数详细介绍及细节参考帮助文档。

 

IncrediBuild与本例的工程、Makefile、脚本上传了,下载地址:

http://download.csdn.net/detail/ceofit/4409315

IncrediBuild3.61.1下载地址:

http://download.csdn.net/detail/ceofit/4409322



只回答业务咨询点击这里给我发消息 点击这里给我发消息

学习日记,兼职软件设计,软件修改,毕业设计。

本文出自 学习日记,转载时请注明出处及相应链接。

本文永久链接: https://www.softwareace.cn/?p=378

0

发表评论

电子邮件地址不会被公开。 必填项已用*标注

您可以使用这些HTML标签和属性: <a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code class="" title="" data-url=""> <del datetime=""> <em> <i> <q cite=""> <strike> <strong> <pre class="" title="" data-url=""> <span class="" title="" data-url="">


Ɣ回顶部

无觅相关文章插件,快速提升流量