首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何在Ant中使用GCJ?

如何在Ant中使用GCJ?
EN

Stack Overflow用户
提问于 2010-03-09 05:10:18
回答 1查看 1.7K关注 0票数 6

我是Apache Ant和GCJ的新手,我很难尝试通过Ant使用GCJ进行构建。

我的应用是Scala的,所以我需要使用GCJ来获取.class文件作为源文件。用Ant将.scala编译成.class是没有问题的。

首先,我了解了如何手动将.class文件编译为.o (object),如下所示:

代码语言:javascript
复制
gcj --classpath=(...) -c (somepath)MouseClickListener.class -o (somepath)MouseClickListener.o

我看到here通过javac标记支持GCJ编译。所以我想这应该行得通:

代码语言:javascript
复制
<target name="gcjCompile" depends="compile">
    <mkdir dir="${object.dir}" />
    <javac srcdir="${build.dir}"
           destdir="${object.dir}"
           compiler="gcj"
           executable="C:/gcc/gcc-4.3/bin/gcj.exe"
           classpathref="gcjProject.classpath">
        <include name="**/*.class"/>
    </javac>
</target>

但是这个javac任务什么也不做,我没有得到任何错误。有什么线索吗?谢谢

EN

回答 1

Stack Overflow用户

发布于 2011-01-17 21:04:52

听起来你想把你的应用链接到本机可执行文件中。这意味着您已经将源代码编译成了JVM字节码(正如您已经通过将.scala编译成.class文件所做的那样)。您将需要使用<exec>任务手动运行gcj命令,将字节码编译成gcc目标代码文件。

我推荐这样的东西:

代码语言:javascript
复制
<property name="main.class" value="Main" />
<property name="class.dir" value="${basedir}/classes" />
<target name="compile">
  <mkdir dir="${class.dir}" />
  <javac srcdir="${build.dir}"
         destdir="${class.dir}"
         compiler="gcj"
         executable="C:/gcc/gcc-4.3/bin/gcj.exe"
         classpathref="gcjProject.classpath">
    <include name="**/*.java"/>
  </javac>
</target>
<target name="link" depends="compile">
  <mkdir dir="${object.dir"} />
  <exec cmd="C:/gcc/gcc-4.3/bin/gcj.exe">
    <arg value="-classpath=${object.dir}" />
    <arg value="-c" />
    <arg value="*.class" />
  </exec>
</target>

请记住,您需要定义build.dirobject.dir属性,并且可能需要在编译目标中的javac之前添加depends任务(或者每次都从头开始重新编译)。我可能遗漏了很多东西,如果一开始不能工作,你应该检查手册页面(对于gcj,gcc和ant)。

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/2404763

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档