1. ant工具安装配置
下载JDK包到本地,进行默认安装(我用的是jdk1.6.0_18)
从http://ant.apache.org下载ant安装包,解压到本地目录。(我用的是apache-ant-1.8.1)
在windows,进行环境变量设置:
ANT_HOME F:\tools\apache-ant-1.8.1
JAVA_HOME F:\Java\jdk1.6.0_18
PATH 增加 :\Java\jdk1.6.0_18\bin;F:\tools\apache-ant-1.8.1\bin
2. cpptask for ant 安装配置
(1)从http://sourceforge.net/projects/ant-contrib/files/下载ant-contrib-1.0b3-bin.zip和cpptasks-1.0b5.zip ,因为cpptask下载的是源码包,需要做些工作编译才能生成的cpptask.jar
步骤如下:
step1 将cpptasks-1.0b5.zip解压到本地如F:\tools\cpptasks-1.0b5,并在该目录下建立mylib子目录
step2 下载Xerces-J-bin.2.5.0.zip并解压,将里面的xercesImpl.jar等4个jar文件拷贝到F:\tools\cpptasks-1.0b5\mylib目录下;
step3 打开F:\tools\cpptasks-1.0b5下的build.xml文件,进行修改
<!-- rabbit add Xerces-J Lib -->
<path id="Xerces-J Lib">
<fileset dir="mylib">
<include name="**/*.jar"/>
</fileset>
</path>
......
<target name="build"
depends="prepare"
description="--> compiles the source code">
<mkdir dir="${build.classes}"/>
<javac srcdir="${java.dir}"
destdir="${build.classes}"
debug="${debug}"
target="${javac.target}"
source="${javac.source}"
deprecation="${deprecation}"
optimize="${optimize}" >
<classpath refid="Xerces-J Lib"/> <!-- rabbit add -->
</javac>
</target>
在cmd窗口,转到F:\tools\cpptasks-1.0b5目录,输入ant 即可在\target\lib看到生成的cpptasks.jar
step4 将cpptask.jar 和ant-contrib-1.0b3.jar拷贝到ant安装目录\lib下;
3、cl环境变量设置见上一篇文章
4、cpptask for ant 编译C++程序示例
Hello.cpp (用记事本写即可)
#include <iostream>
using namespace std;
int main(int argc, char* argv[])
{
cout << "hello, world for C++ Test!" << endl;
system("pause");
return 0;
}
build.xml
<project name="ant cpp Test" default="compile" basedir="." xmlns:cpptasks="antlib:net.sf.antcontrib.cpptasks">
<taskdef resource="cpptasks.tasks"/>
<typedef resource="cpptasks.types"/>
<taskdef resource="net/sf/antcontrib/antcontrib.properties"/>
<property name="src.dir" value="${basedir}/src"/>
<property name="obj.dir" value="${basedir}/obj"/>
<property name="bin.dir" value="${basedir}/bin"/>
<property environment="getenv"/>
<compiler id="cc">
<defineset define="_POSIX_SOURCE"/>
</compiler>
<compiler name="msvc" id="msvc-compiler" extends="cc">
<compilerarg value="/Za"/>
<compilerarg value="/G5"/>
</compiler>
<linker name="msvc" id="msvc-linker">
<linkerarg value="/libpath:${getenv.MSDEVDIR}\lib"/>
</linker>
<target name="clean">
<delete dir="${obj.dir}" />
</target>
<target name="init">
<mkdir dir="${src.dir}"/>
<mkdir dir="${obj.dir}"/>
<condition property="cc" value="msvc">
<os family="windows"/>
</condition>
</target>
<target name="compile" depends="clean,init">
<cpptasks:cc outtype="executable" subsystem="console" outfile="${bin.dir}/HelloCPP" objdir="${obj.dir}">
<cpptasks:compiler refid="${cc}-compiler"/>
<cpptasks:linker refid="${cc}-linker"/>
<fileset dir="${src.dir}" includes="*.cpp"/> <!--rabbit:若是c文件,此处改为*.c即可-->
</cpptasks:cc>
</target>
</project>