转-减小编译时间的两种做法

作者:朱金灿

来源:http://blog.csdn.net/clever101

 

随着源码工程越来越庞大,花在编译上面的时间越来越多。我们开始研究如何减少编译时间。

 

一是执行每日自动构建。每日自动构建的原理很简单:安装每日构建工具CCNET(不熟悉该工具的同学可以去搜索下)。然后在源码服务器上安装编译环境。源码服务器每天获取最新代码,每天下班后开始编译最新代码,经过一个晚上基本上就能把库和应用程序都编好,到了第二天开发人员只需下载最新的库文件和代码文件而不须自己重新编译。这样就能大大节省时间了。

 

二是使用联合编译器IncrediBuild。这个工具估计大家都不陌生。最近试验了一个新想法,写一个批处理文件,将SVN和IncrediBuild绑在一起,实现了从源码更新到工程编译。

这个批处理文件是这样的:

 

  1. <span >@echo off  
  2.   
  3. ::update code to local  
  4. svn up include  
  5. svn up src   
  6. svn up vs  
  7.   
  8. :: call IncrediBuild to compile project  
  9. BuildConsole D:\Code\MySolution.sln /prj="MyApp" /build /OpenMonitor /cfg=" Debug |Win32"  
  10. </span>  


 

 

这里稍微解释这个批处理文件的命令语法:

svn up include   // 更新服务器的include文件夹到本地

BuildConsole D:\Code\MySolution.sln /prj="MyApp"/build /OpenMonitor /cfg=" Debug |Win32"

BuildConsole是IncrediBuild的命令行工具,

D:\Code\MySolution.sln是你的解决方案文件绝对路径,

/prj参数设置你要编译的工程,如果你要编译多个工程,可以这样设置,/prj="prj1,prj2,prj3",

/prj参数也支持通配符,/prj="*"即为编译MySolution.sln下的所有工程

/build为编译工程,若改为/rebuild即是清理重编工程。

/OpenMonitor为打开IncrediBuild的图形化界面,去掉该参数则不出现图形界面。

/cfg为编译设置选项,如要编release版本,可以改为Release|Win32。

 

     把上面的代码保存为BuildDebug.bat,把文件保存在D:\Code\路径下(即源码根目录,下面有include、src和vs三个文件夹),然后运行这个批处理文件就相当于把从更新源码到编译源码这一系列动作都执行了。

 

参考文献:

1. svn的使用

2. 批处理脚本之——IncrediBuild

 

posted @ 2012-01-05 10:01  小 楼 一 夜 听 春 雨  阅读(453)  评论(0编辑  收藏  举报