我试图通过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>

并行参数使用所有文件作为参数运行一次程序。

10-07 19:19
查看更多