HaxeDevelop:通过默认项目模板进行跨平台编译

时间:2017-09-07 06:50:27

标签: cross-platform haxe flashdevelop

尝试研究如何通过HaxeDevelop在不同语言上创建“Hello world”。我是新手,可能在术语上不知情。

1) C#项目。按F8给我错误:

  

haxe -cp src -cs D:/ Programs / Projects / CsTestHaxe / bin / -main Main
  Unix.Unix_error(8,“mkdir”,“D:/ Programs / Projects / CsTestHaxe / bin /”)
  构建因错误而停止(haxe.exe)。

通过谷歌搜索相当过时的信息至少找到解决方案:

haxe -main Main -cs out

它有效,但输出到“src”位置是坏的。接下来的谷歌搜索引导我进行“自定义构建”并在项目设置中使用.hxml和pre-build命令 但是为什么默认模板/设置不能用于 “Hello world” (使用cs.system.Console)这样简单的事情?
如何修复默认构建/可能是通过HaxeDevelop安装我安装或设置错误?

2) C ++项目。按F8给我错误:

  

警告:找不到Visual Studio的环境变量
  缺少HXCPP_VARS
  错误:无法自动设置MSVC
  错误:构建失败
  构建因错误而停止(haxe.exe)。

使用命令行(类似于上面的C#)我可以执行C ++源代码,但无法编译它 已安装 Visual Studio Community 2017 。什么都没有改变,同样的错误。 VS提供不同的安装部件。我应该安装任何具体的吗? 还发现了许多关于 OpenFL C ++编译的解决方法的主题。但我不需要OpenFL,并且想要使用默认的Haxe API和工具 此外,OpenFL和C ++总是提到 Lime 。我也需要它吗?通过命令行安装Lime。但似乎没有任何改变。

3)我是否正确HaxeDevelop尚未支持 HashLink
如果有可能的话,如果 Neko 与Haxe有关联,那么就会出现 HashLink 的原因?

结果这里有一个额外的问题:Haxe在编译到目标平台时是否只是“转换”.hx源到目标一个然后使用第三方(目标平台)编译?

1 个答案:

答案 0 :(得分:2)

  

1)C#项目。按F8给我错误。

这似乎是a known Haxe issue。由于它是been fixed on the dev branch,您可以尝试从build.haxe.org进行夜间构建。或者,您也可以尝试手动创建bin目录,因为这似乎是错误的原因。

  

2)C ++项目。按F8给我错误:

hxcpp(3.4.64)的最新Haxelib版本尚不支持Visual Studio 2017。您可以通过从GitHub安装hxcpp来使用开发版本,因为它再次should be fixed there

haxelib git hxcpp https://github.com/HaxeFoundation/hxcpp

另一种方法是降级Visual Studio。

  

Open Lime和C ++总是提到Lime。我也需要吗?

是的,如果你想使用OpenFL,你也需要Lime,因为OpenFL依赖它。

  

3)我是否认为HaxeDevelop还不支持HashLink?

实际上是一个HashLink项目模板was added。但是,为了遵循这个答案的一般主题,它似乎还没有成为一个官方的关系。您可以从here获得每晚构建。

  

如果Neko与Haxe有关系,可能会有关于HashLink出现原因的几个词吗?

HashLink的作者在haxe.org上有一个由两部分组成的博客系列:part 1part 2。第一部分有一个段落谈论这个确切的主题。这是一段摘录:

  

首先,让我解释一下编写另一个虚拟机以取代Neko的原因。

     

[...]

     

当时,Neko虚拟机并没有专门设计用于运行Haxe并受到一些限制,主要是性能。

     

[...]

关于你的最后一个问题:

  

是不是Haxe在编译到目标平台时只将“.hx源”转换为目标,然后使用第三方(目标平台)编译?

某些目标确实如此,但这取决于。对于C ++,C#和Java,Haxe indeeds为目标语言生成源代码,然后在执行自己的编译后调用目标本机编译器(此步骤通常称为“本机编译”)。

但是,有些目标直接生成字节码(SWF和Neko),因此没有本地编译步骤。其他目标语言是interpreted(JS,PHP,Python和Lua),因此也没有本地编译步骤。对HL而言,它实际上取决于HL / Jit(字节代码)和HL / C,它被编译为本机C代码。

您可以找到一个全面的Haxe目标列表及其特征here

Phew,这是一个很多问题。 ;)