【开发工具】分布式编译-IncrediBuild
2015-10-20 19:41
555 查看
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为:
[html] view
plaincopy
<?xml version="1.0" encoding="UTF-8" standalone="no" ?>
<Profile FormatVersion="1">
<Tools>
<Tool Filename="make" AllowIntercept="true" />
<Tool Filename="cl" AllowRemote="true" />
<Tool Filename="link" AllowRemote="true" />
<Tool Filename="gcc" AllowRemote="true" />
<Tool Filename="gcc-3" AllowRemote="true" />
</Tools>
</Profile>
编译的Makefile写为:
[plain] view
plaincopy
VSCC=cl.exe
VSLINK=link.exe
vcall:main.obj test.obj test1.obj test2.obj test3.obj test4.obj test5.obj test6.obj test7.obj
$(VSLINK) *.obj /OUT:a.exe /LIBPATH:"D:\Program Files\Microsoft Visual Studio 8\VC\lib"
main.obj:
$(VSCC) -c main.c
test.obj:
$(VSCC) -c test.c
test1.obj:
$(VSCC) -c test1.c
test2.obj:
$(VSCC) -c test2.c
test3.obj:
$(VSCC) -c test3.c
test4.obj:
$(VSCC) -c test4.c
test5.obj:
$(VSCC) -c test5.c
test6.obj:
$(VSCC) -c test6.c
test7.obj:
$(VSCC) -c test7.c
clean:
rm -f *.exe *.obj
这样可以通过如下批处理脚本执行:
[plain] view
plaincopy
xgconsole /command="make vcall -j20" /profile="Profile.xml"
pause
执行如下:
可以看出,命令一起启动后才执行,查看IncrediBuild窗口查看分布式过程。
6、Windows下Gcc编译
GCC编译与命令行编译类似,只不过Makefile与编译器不同而已。
Makefile为:
[plain] view
plaincopy
CC=gcc-3
all:main.o test.o test1.o test2.o test3.o test4.o test5.o test6.o test7.o
$(CC) *.o -o a
main.o:
$(CC) -c main.c
test.o:
$(CC) -c test.c
test1.o:
$(CC) -c test1.c
test2.o:
$(CC) -c test2.c
test3.o:
$(CC) -c test3.c
test4.o:
$(CC) -c test4.c
test5.o:
$(CC) -c test5.c
test6.o:
$(CC) -c test6.c
test7.o:
$(CC) -c test7.c
clean:
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脚本实现,很简单:
[plain] view
plaincopy
IBPATH="/cygdrive/c/Progra~1/Xoreax/IncrediBuild"
PATH=$PATH:$IBPATH
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
版权声明:本文为博主原创文章,未经博主允许不得转载。
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为:
[html] view
plaincopy
<?xml version="1.0" encoding="UTF-8" standalone="no" ?>
<Profile FormatVersion="1">
<Tools>
<Tool Filename="make" AllowIntercept="true" />
<Tool Filename="cl" AllowRemote="true" />
<Tool Filename="link" AllowRemote="true" />
<Tool Filename="gcc" AllowRemote="true" />
<Tool Filename="gcc-3" AllowRemote="true" />
</Tools>
</Profile>
编译的Makefile写为:
[plain] view
plaincopy
VSCC=cl.exe
VSLINK=link.exe
vcall:main.obj test.obj test1.obj test2.obj test3.obj test4.obj test5.obj test6.obj test7.obj
$(VSLINK) *.obj /OUT:a.exe /LIBPATH:"D:\Program Files\Microsoft Visual Studio 8\VC\lib"
main.obj:
$(VSCC) -c main.c
test.obj:
$(VSCC) -c test.c
test1.obj:
$(VSCC) -c test1.c
test2.obj:
$(VSCC) -c test2.c
test3.obj:
$(VSCC) -c test3.c
test4.obj:
$(VSCC) -c test4.c
test5.obj:
$(VSCC) -c test5.c
test6.obj:
$(VSCC) -c test6.c
test7.obj:
$(VSCC) -c test7.c
clean:
rm -f *.exe *.obj
这样可以通过如下批处理脚本执行:
[plain] view
plaincopy
xgconsole /command="make vcall -j20" /profile="Profile.xml"
pause
执行如下:
可以看出,命令一起启动后才执行,查看IncrediBuild窗口查看分布式过程。
6、Windows下Gcc编译
GCC编译与命令行编译类似,只不过Makefile与编译器不同而已。
Makefile为:
[plain] view
plaincopy
CC=gcc-3
all:main.o test.o test1.o test2.o test3.o test4.o test5.o test6.o test7.o
$(CC) *.o -o a
main.o:
$(CC) -c main.c
test.o:
$(CC) -c test.c
test1.o:
$(CC) -c test1.c
test2.o:
$(CC) -c test2.c
test3.o:
$(CC) -c test3.c
test4.o:
$(CC) -c test4.c
test5.o:
$(CC) -c test5.c
test6.o:
$(CC) -c test6.c
test7.o:
$(CC) -c test7.c
clean:
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脚本实现,很简单:
[plain] view
plaincopy
IBPATH="/cygdrive/c/Progra~1/Xoreax/IncrediBuild"
PATH=$PATH:$IBPATH
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
版权声明:本文为博主原创文章,未经博主允许不得转载。
相关文章推荐
- 分布式版本管理git入门指南使用资料汇总及文章推荐
- C#分布式事务的超时处理实例分析
- Erlang分布式节点中的注册进程使用实例
- C++实现的分布式游戏服务端引擎KBEngine详解
- 5个Linux平台程序员最爱的开发工具汇总
- 我用的一些Node.js开发工具、开发包、框架等总结
- ASP.NET通过分布式Session提升性能
- 分享15款Java程序员必备的开发工具
- 分享一个简单易用的RPC开源项目—Tatala
- 手把手教你配置Hbase完全分布式环境
- IntelliJ IDEA & Android Studio的调整优化
- Glusterfs:趋于成熟的集群文件系统
- 关于glusterfs的directory-layout-spread参数
- tomcat集群扩展session集中管理,Memcached-session-manager...
- Redis集群快速搭建
- 高可用,完全分布式Hadoop集群HDFS和MapReduce安装配置指南
- Hadoop上路_14-Hadoop2.3.0的分布式集群搭建
- J2EE分布式方案的选择
- 使用 RMI + ZooKeeper 实现远程调用框架