vc

Ant编译vc工程

分类: C++ 1180人阅读 评论(1) 收藏 举报

Ant 是Java的一个编译工具,但也可以用于编译VC工程。因为VC支持命令行编译,所以Ant只要调用VC命令行编译程序就可以了。
vc6与vc7.0以上的命令行程序不一样,vc6是MSDEV.COM,vc7是devenv.com。把{ vc的安装目录 }/Common/MSDev98/Bin 加入环境变量Path,以便Ant能直接调用vc命令行程序。



Ant默认调用的配置文件是build.xml, 你也可以用命令 "ant -f xx.xml" 来指定配置文件。


  • 编译一个工程

 

下面是一个build.xml的例子:


  1. <?xml version="1.0"?>  
  2. <project name="xxxx" default="main">  
  3.     
  4.     <!-- 编译工程 -->  
  5.     <target name="main" >  
  6.         <echo message="complie, wait..." />  
  7.         <exec executable="MSDEV.COM" failonerror="true" >  
  8.         <arg value="../src/xxxx.dsw"/>  
  9.         <arg value="/rebuild" />  
  10.         <arg value="/make" />  
  11.         <arg value="xxx - Win32 Unicode Release" />  
  12.         <arg value="/out" />  
  13.         <arg value="../buildlog.txt" />  
  14.         </exec>  
  15.     </target>  
  16. </project  

 

上面例子的 "编译工程" 的 exec 节点,表示调用程序"MSDEV.COM";  后面跟着的"arg"节点,表示被调用程序的参数。其执行的命令就是

 

 MSDEV.com "../src/HMI.dsw" /rebuild /make "HMIUI - Win32 Unicode Release" /out "../buildlog.txt"

 

 


编译多个VC工程

如果你有多个VC工程,每个工程都要写一段上面的配置,那是一件很麻烦的事。我们可以使用Ant的"antcall" 来精简配置。例子如下:

 


  1. <?xml version="1.0"?>  
  2. <project name="xxxx" default="main">  
  3.     <!-- 编译所有的插件 -->  
  4.     <target name="buildAll">  
  5.       <antcall target="buildone">  
  6.         <!-- 工程路径 -->  
  7.         <param name="project.file" value="./src/xxxx/xxxx.dsp" />  
  8.         <!-- 工程名称 -->  
  9.         <param name="project.name" value="xxx" />  
  10.       </antcall>  
  11.     </target>  
  12.      <!-- 编译一个VC工程 -->  
  13.      <target name="buildone">  
  14.         <!-- 清理工作 -->  
  15.         <echo message="clean ${ project.file } ..." />  
  16.         <exec executable="MSDEV.COM">  
  17.            <arg value="${ project.file }" />  
  18.            <arg value="/clean" />  
  19.            <arg value="/make" />  
  20.            <arg value="${ project.name } - Win32 Unicode Release" />  
  21.         </exec>  
  22.         <!-- 编译 -->  
  23.         <echo message="complie ${ project.file }, wait..." />  
  24.         <exec executable="MSDEV.COM" failonerror="true">  
  25.         <arg value="${ project.file }"/>  
  26.         <arg value="/rebuild" />  
  27.         <arg value="/make" />  
  28.         <arg value="${ project.name } - Win32 Unicode Release" />  
  29.         </exec>  
  30.     </target>  
  31.     <target name="main" depends="buildAll">  
  32.     </target>  
  33. </project>   

 

上面的例子中的一个"antcall" 节点 表示一个VC工程,它将调用"buildone" target 来编译该工程。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值