cross-platform - Haxe开发 : cross-platform compilation via default project templates

标签 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/")
Build halted with errors (haxe.exe).

通过谷歌搜索几乎过时的信息至少找到了解决方案:

haxe -main Main -cs out

它可以工作,但输出转到“src”位置,这很糟糕。接下来的谷歌搜索让我找到了“自定义构建”,并在项目设置中使用带有预构建命令的 .hxml。
但是为什么默认模板/设置不适用于“Hello world”(使用cs.system.Console)这样简单的事情?
如何修复默认构建/可能我通过 HaxeDevelop 安装安装或设置了错误?

2) C++ 项目。按 F8 出现错误:

Warning: Could not find environment variables for Visual Studio
Missing HXCPP_VARS
Error: Could not automatically setup MSVC
Error: Build failed
Build halted with errors (haxe.exe).

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

3) HaxeDevelop 尚未支持 HashLink,我说得对吗?
如果可能的话,解释一下如果有 Neko 隶属于 Haxe,为什么会出现 HashLink


因此,这里有一个额外的问题:Haxe 在编译到目标平台期间仅将 .hx 源“转换”为目标平台,然后使用第三方(目标平台)编译,是否正确?

最佳答案

1) C# project. Pressing F8 gives me error.

这似乎是a known Haxe issue 。因为它是been fixed on the dev branch ,您可以尝试从 build.haxe.org 开始每晚构建。或者,您也可以尝试手动创建 bin 目录,因为这似乎就是错误所在。

2) C++ project. Pressing F8 gives me error:

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

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

替代方法是降级 Visual Studio。

Also OpenFL and C++ always mentioned with Lime. Do I need it too?

是的,如果您想使用 OpenFL,您还需要 Lime,因为 OpenFL 依赖于它。

3) Am I right that HaxeDevelop not yet support HashLink?

其实是一个HashLink项目模板was added 。但按照这个答案的总体主题,它似乎还没有成为正式版本。您可以从 here 获取每晚构建版本.

And if possible couple words about why HashLink appeared if there is Neko affilated with Haxe?

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

First, let me explain the reasons for writing another virtual machine in replacement of Neko.

[...]

Back then, the Neko virtual machine was not especially designed to run Haxe and suffered from some limitations, the main one being performance.

[...]

最后一个问题:

is it right that Haxe during compilation to target platform only "convert" .hx source to target one and then using third party (target platform) compile?

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

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

您可以找到 Haxe 目标及其特征的完整列表 here .

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

关于cross-platform - Haxe开发 : cross-platform compilation via default project templates,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/46089672/

相关文章:

python - 如何为不同操作系统/Python 版本编译 Python C/C++ 扩展?

c - 如何检测来自不同操作系统的文本文件的行结尾?

c++ - 在 Flashdevelop OpenFL 中编译需要 31 分钟

xml - Haxe 与 XPath 有友谊吗?

flash - FDT:从 Haxe 项目调试时,Flash Player 调试器未连接

c# - visual studio 2017 中没有 xamarin.forms BlankApp

.net - 多平台 VisualStudio 项目

.net - 如何在 FlashDevelop 中添加对新语言的支持?

actionscript-3 - AS3 错误 #1065

java - 另一个 '"java.exe"' 不被识别为内部或外部命令