我试图通过ant将文件夹中的所有* .cpp文件提供给c++编译器。但是,我只不过给ant给gpp一个包含所有文件的巨大字符串而已。我试图通过使用一个小的测试应用程序来证明这一点:
int main( int argc, char**args ){
for( --argc; argc != 0; --argc ) printf("arg[%d]: %s\n",argc,args[argc]);
}
使用这样的ant脚本:
<target name="cmdline">
<fileset id="fileset" dir=".">
<include name="*"/>
</fileset>
<pathconvert refid="fileset" property="converted"/>
<exec executable="a.exe">
<arg value="${converted}"/>
</exec>
</target>
我的a.exe的输出是这样的:
现在的问题是:如何单独提供文件集中的所有文件作为可执行文件的参数?
最佳答案
这就是ANT中的apply任务旨在支持的内容。
例如:
<target name="cmdline">
<apply executable="a.exe" parallel="true">
<srcfile/>
<fileset dir="." includes="*.cpp"/>
</apply>
</target>
并行参数使用所有文件作为参数运行一次程序。