并行编译加快VS C++项目的编译速度

最近编译的项目都比较大,话说自己的电脑配置还行,但编译所花的时间还是很长,遇到需要重新编译整个项目的时候真的有回宿舍睡一觉的冲动。昨天一不小心被我发现了一款软件Xoreax IncrediBuild 今天用了一下,实在是太爽了,我把我们办公室的机器都连了起来,其中还有一台工作站,总共加起来22个CUP核,我试了一下实在是太拉风了。

其实这款软件已经推出很久了,只是之前接触的项目都比较小,没有在编译时间上太在意。下面就记录一下Xoreax IncrediBuild的使用方式,我下载的是Xoreax IncrediBuild v4.0,其实它是VS的一款插件,支持VS2010、VS2008、VS2005,之前的Xoreax IncrediBuild版本支不支持这些本人没做考究。

以下引用自http://zhouruijun163.blog.163.com/blog/static/107715620119219580479/,文字表达稍有修改

加速编译原理:

Xoreax IncrediBuild是分布式编译(多线程处理)工具,也称之为联合编译.如果局域网内存在多台电脑安装了这个软件(不要求安装VS),在编译C/C++时,它会查找局域网中空闲的CPU,并将源文件发到空闲CPU一起编译,从而大大缩短了大工程的编译时间.
IncrediBuild 分为服务端(Coordinator)和客户端(Agent).服务端是协调任务的分配,客户端把分到手的任务编译后再返还回任务请求者,不是服务器, 服务端只负责分配工作,之后客户端之间进行P2P的操作,如果二个客户端建立好链接后,此时再与服务端断开也不会影响他们之间的编译。(参考:)

安装方法:

1) 服务端(Coordinator)的安装:
运 行IncrediBuild安装程序,选择Install IncrediBuild,并点Next下一步.同意那什么License Agreement继续下一步.来到安装组件选择(Component Selection).这里做为服务端我们要钩先上IncrediBuild Coordinator.这里是一个复选框,一般来说服务端也可以参与编译工作,如果不想让服务端参与编译工作的话,就把上面的IncrediBuild Agent前的钩点掉就可以

继续下一步,选择安装路径,和使用的一些端口号.参与编译的CPU数(这个只有钩选了Agent后才会有)等,这些使用默认的就可以了.之后安装完成.IncrediBuild的服务端就安装好了.

2) 客户端(Agent)的安装:
在其它的电脑上,运行IncrediBuild的安装程序,运行到安装组件选择(Component Selection),只钩选IncrediBuild Agnet并下一步

选择安装路径,并下一步.在这要填入服务端的IP地址和端口号.

填好之后下一步,它会与服务器进行验证一下.然后设置一下编译通讯的端口之类的.这与网内安装的其它的一至就行了,一般情况都使用默认.然后选择参与编译的CPU数.最后安装就行了.

到这步,基本上服务器与客户端都安装完成.在CoordinatorMonitor中可以看到各成员的状态.(注:我的看不到下面的界面,不影响功能)

打开VS你将会发现菜单栏上多出了一项IncrediBuild的选项.这就是在“IncrediBuild”菜单下进行联合编译了.

提示:编译的时候关闭360卫士。

以下是编译界面:(是不是很酷  O(∩_∩)O~)

http://blog.csdn.net/hjh2005/article/details/7375324

时间: 2024-10-22 02:52:17

并行编译加快VS C++项目的编译速度的相关文章

剑指架构师系列-持续集成之Maven实现项目的编译、发布和部署

Maven组织项目进行编译.部署 Maven项目基本的结构说明如下: mazhi  // 控制所有荐的编译.部署.发布 mazhi-app-parent  // 项目的父项目,有一些公共的设置可以被子项目继承 mazhi-core  // 基础服务项目,例如公共类等 mazhi-xxx 其中mazhi和mazhi-app-parent是pom格式,而mazhi-core是jar格式,还可以是 war等格式. 我们以新建mazhi和mazhi-core项目为例说明一下. 新建Maven-proje

nixyx —— 一个小巧的项目工程/编译文件生成器(构建系统?)

恩..nixyx确实算不上是一个构建系统. 所谓构建系统,比如GNU的Autotools,那是一套很完整的构建体系,包括了程序的配置,编译和安装三大部分. 类似的软件还有:google的gyp.腾讯的Blade等.它们最大的好处在于,可以不考虑平台之间的差别,使用统一的配置文件和命令,做到跨平台部署. 它们往往还支持很多很高端的功能,比如集成自动测试,代码检查(Blade).. 可是我暂时不需要这些复杂的功能.我正在编写的nixy库是一个跨平台/编译器的C++库,它非常小,没必要使用大型的(或者

myEclipse配置java版本(环境、项目、编译)

从别的地方导入一个项目的时候,经常会遇到eclipse/Myeclipse报Description  Resource Path Location Type Java compiler level does not match the version of the installed Java project facet.出现这个问题的原因是因为,eclipse/myeclipse的jdk编译版本与出现问题的项目JDK编译版本不一致所导致! 工具/原料 eclipse/MyEclipse 方法/

Android 如何编写基于编译时注解的项目

本文已在CSDN<程序员>杂志刊登. 本文已授权微信公众号:鸿洋(hongyangAndroid)在微信公众号平台原创首发. 转载请标明出处: http://blog.csdn.net/lmj623565791/article/details/51931859: 本文出自:[张鸿洋的博客] 一.概述 在Android应用开发中,我们常常为了提升开发效率会选择使用一些基于注解的框架,但是由于反射造成一定运行效率的损耗,所以我们会更青睐于编译时注解的框架,例如: butterknife免去我们编写

Sipdroid项目的编译运行

Sipdroid是开源的一款SIP协议网络电话,由谷歌和其他公司共同研发而成.以下我会介绍如何在Windows系统编译运行该项目. 前提条件: eclipse,jdk,sdk安装成功,并配置好相应的环境变量,构成android开发环境 一.下载sipdroid项目源代码 sipdroid项目是托管在SVN服务器上的,所以要拿到sipdroid源代码,那么就要使用SVN插件检测出该项目.在eclipse中,需要按照下面的步骤进行: (1)在eclipse中安装subclipsea.sublipse

从svn检出的项目如何编译

从svn检出的项目如何编译 svn检查项目后,不能构建编译 工程右键,bulid path -->No actions available 问题:svn检查项目后,发现没有class文件. 工程在myeclipse中是设置成bulid auto..(自动编译)的,结果没有编译后的class文件.手动添加jar包,发现bulid path -->No actions available. 原因:.project 文件无,或为空或者文件内容不全. .classpath文件无或为空. 解决:拷贝一份

VC++DUIEngine界面编程1--学习编译及配置DUIEngine项目

1. 为什么要用DUIEngine: DUIEngine的作者是:启程软件.在此感谢他为此项目所付出的心血,能为我们这些界面爱好者,奉献了宝贵的时间以及优秀的代码. DUIE的优势为: 1. 作者将金山的BKWin进行了深度改写,从而使之更易于使用和开发.相比传统的WTL而言,DUIE增加了许多窗口特效,如动态缩放窗口,3D界面旋转.从而使开发者能够在较短时间内开发出比较炫丽的界面特效. 2. 结合了MFC及WTL开发者的开发习惯,使开发者能够在较短时间内接受DUIE的开发模式. 3. 作者长时

请使用下列bash命令下载、编译和运行本项目:

快速上手 请使用下列bash命令下载.编译和运行本项目: $ git clone https://github.com/PerfectExamples/Perfect-Markdown-Editor.git $ cd Perfect-Markdown-Editor $ swift build $ ./.build/debug/PerfectMarkdownEditor 4 如果运行成功,则终端会显示: [INFO] Starting HTTP server localhost on 0.0.0.

Linux巩固记录(1) java项目的编译和执行

由于要近期使用hadoop等进行相关任务执行,操作linux时候就多了 以前只在linux上配置J2EE项目执行环境,无非配置下jdk,部署tomcat,再通过docker或者jenkins自动部署上去 看下进程,复制粘贴删除等基本操作,很多东西久了不用就忘了,所有写个demo巩固下曾经的linux知识 后续会有hadoop等主流的大数据相关环境的搭建及使用 ---------------------------------------------------------------------