如何使用Hashlink分发我的Haxe应用程序?

时间:2017-03-10 15:02:57

标签: haxe hashlink

我有一个Haxe应用程序,我想让Windows系统的用户可以使用它。我使用Hashlink在本地运行应用程序,它运行得非常好。

我想知道我是否应该使用Hashlink分发我的应用程序。它能为我建立一个.exe吗?

1 个答案:

答案 0 :(得分:12)

今天(2017年3月10日),现在看来不支持生成可分发的二进制文件:

> haxe -main Main -hl main.c
Code generated in main.c automatic native compilation not yet implemented

希望很快就会得到支持!

注意: 我正在讨论使用hashlink构建最终可执行文件。我在这里没有介绍的完全独立的方法是使用输出hl bitcode提供hashlink虚拟机的可能性。

Sane人在这里停止阅读。

但与此同时......如果您从源代码构建hashlink,那么今天使用hashlink生成二进制文件是可能的

<强>警告:

  • 这不是对您的问题的通用,跨平台的答案 - 这只是我在Linux上的经验。
  • 可能很快会有比这更好的方式。
  • 但是我想把这些笔记记下来,甚至让我自己回忆起来。

这是我在Ubuntu 14.04,64位上必须做的事情:

安装用于构建hl的必备库(可能还有其他我已经安装过的,比如build-essential等)

sudo apt-get install libvorbis-dev libturbojpeg libsdl2-dev libopenal-dev libssl-dev

克隆并构建mbedtls库:(转录:b5ba28

cd ~/dev/
git clone https://github.com/ARMmbed/mbedtls.git
cd mbedtls
make CFLAGS='-fPIC'

克隆hashlink repo :(转录注:eaa92b

cd ~/dev/
git clone https://github.com/HaxeFoundation/hashlink.git
cd hashlink

# Linux,〜第67行的Makefile部分,添加以下标记:

CFLAGS += -I ../mbedtls/include
LIBFLAGS += -L../mbedtls/library

现在使用make

进行构建

如果一切正常,您会看到两个重要的输出文件hllibhl.so

好的,此时,如果您只是在hashlink目录中构建项目,这是最简单的。例如:

# Still in the hashlink directory
haxe -cp /path/to/my/project -debug -main Main.hx -hl src/_main.c

现在运行make hlc,如果一切正常,hlc是输出可执行文件(取决于libhl.so):

cp libhl.so hlc /tmp/
cd /tmp/
./hlc

打印:

Main.hx:7: Hello world!