【问题标题】:Multilanguage development多语言开发
【发布时间】:2011-06-27 12:16:50
【问题描述】:

我想用两种语言开发一个应用程序。 实际上,目标是生成两个不同的应用程序,一个使用一种语言 (Java),另一个使用另一种语言 (C#)。

感谢目标定义,我想使用 makefile 来帮助我生成一个或另一个应用程序。

我不知道从哪里开始。 你有没有尝试过这样的发展? 是否可以使用一个makefile调用不同目标的java编译器或c#编译器?

提前感谢您的帮助。

【问题讨论】:

  • 您将使用哪种语言编写应用程序?
  • 带有点网扩展的 Ant (ant.apache.org/antlibs/dotnet) 可能比 make 更容易。
  • 你是说你想用两种不同的语言生成相同的应用程序 - 并以某种方式自动生成另一种语言?您想要自动从 Java 到 C# 的翻译,反之亦然?

标签: c# java makefile multilingual


【解决方案1】:

当然,您可以使用 make 文件来编译(和链接)不同语言的源文件。没有限制。您所需要的只是一个可以由 shell / 从命令行调用的编译器(链接器)。

替代方案:ant 可以同时执行 Java 和 C#。如果您不需要使用单个构建文件构建两个应用程序,您仍然可以使用单独的文件并编写批处理/shell 脚本来调用两个构建器。

【讨论】:

  • +1 用于单独的构建文件。或者您可以安排运行antmake,反之亦然。
  • 谢谢,这是我的想法:按照选择的正确目标调用 coorect 编译器和链接器。
【解决方案2】:

是的,可以覆盖 Makefile 变量以指向 javac 或 .NET 编译器。

但是,您很可能不会从中受益,因为很难编写在两种语言中都有效的程序。

您可能想查看http://www.ikvm.net/,它提供了.NET 下的Java 仿真环境,因此如果您有Java 程序,它可以在.NET 下运行。

【讨论】:

  • 感谢您的回答。 ikvm 看起来不错,但它会转换源文件,所以我必须同时开发两种语言。
  • 我建议您在问题中更详细地描述您的实际情况。
【解决方案3】:

还有声称可以做到这一点的 Fantom 项目,但我对跨平台支持非常怀疑(如何抽象所有 API 的所有副作用?)。

但我不知道这个项目,也许他们做得很好。

http://fantom.org/

【讨论】:

    【解决方案4】:

    我的想法很愚蠢,但我想你可以试试这个: 第一步:制作一个bat文件 第 2 步:制作 2 个脚本文件 第 3 步:让它同时执行!

    @echo off
    start yourfile.script
    start yourfile.script
    

    这个想法会失败

    【讨论】: