Haxe编译为C ++和JS源代码

时间:2016-06-21 22:10:22

标签: haxe

我正在尝试用一种语言编写源代码并将其转换为本机c ++和JS源代码。理想情况下,转换后的源应该是人类可读的并且尽可能地与原始源类似。我希望haxe可以为我解决这个问题。所以我在haxescript中编码并将其转换为相应的C ++和JS源代码。然而,我发现haxe的例子似乎为你创造了最终的应用程序。因此,使用C ++,它将使用msbuild(或它找到的任何编译器),并从生成的C ++代码中为您创建最终的exe。 haxe是否也创建了c ++和JS源代码供您查看,或者它是在内部完成haxe而不是可访问的?如果它是可访问的,那么是否可以删除haxe的构建方面,以便它只是创建源代码并停止?

由于

1 个答案:

答案 0 :(得分:4)

生成CPP时,所有中间文件都会生成并保存在您决定生成输出的位置(使用-cpp pathToOutput给出的路径)。您获得可执行文件的事实可能是因为您使用的是-main开关。这意味着您的应用程序的入口点,但这并不是真正需要的,您可以将一些您希望在输出中构建的类型传递给命令行。

对于JS它非常相似,生成一个JS文件,如果你使用-main它只有一个入口点。

关于其他主题,您的Haxe代码是否类似于生成的代码,答案是肯定的,但是......某些类型(如EnumAbstract)仅存在于Haxe中,因此他们将生成功能正常但可能看起来完全不同的代码。此外,Haxe还有一个永远在线的优化器/分析器,可能会以意想不到的方式混淆您的代码(可以禁用分析器)。我仍然发现从生成的代码中找出Haxe源并不困难。 JS支持源映射,这对调试非常有用。所以最后,Haxe没有做任何事情来混淆你生成的代码,但也没有做太多的事情来试图过于严格地保存它。