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

niz*_*zle 8 haxe hashlink

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

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

Jef*_*ard 12

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

> haxe -main Main -hl main.c
Code generated in main.c automatic native compilation not yet implemented
Run Code Online (Sandbox Code Playgroud)

希望很快就会得到支持!

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

萨恩人不再在这里读书.

但与此同时...... 如果您从源代码构建hashlink,则可以使用hashlink生成二进制文件.

警告:

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

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

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

sudo apt-get install libvorbis-dev libturbojpeg libsdl2-dev libopenal-dev libssl-dev
Run Code Online (Sandbox Code Playgroud)

克隆和构建mbedtls库:(转注释:b5ba28)

cd ~/dev/
git clone https://github.com/ARMmbed/mbedtls.git
cd mbedtls
make CFLAGS='-fPIC'
Run Code Online (Sandbox Code Playgroud)

克隆hashlink回购:(转注释:eaa92b)

cd ~/dev/
git clone https://github.com/HaxeFoundation/hashlink.git
cd hashlink
Run Code Online (Sandbox Code Playgroud)

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

CFLAGS += -I ../mbedtls/include
LIBFLAGS += -L../mbedtls/library
Run Code Online (Sandbox Code Playgroud)

现在用 make

如果一切正常,你会看到两个重要的输出文件,hl和libhl.so

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

# Still in the hashlink directory
haxe -cp /path/to/my/project -debug -main Main.hx -hl src/_main.c
Run Code Online (Sandbox Code Playgroud)

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

cp libhl.so hlc /tmp/
cd /tmp/
./hlc
Run Code Online (Sandbox Code Playgroud)

打印:

Main.hx:7: Hello world!
Run Code Online (Sandbox Code Playgroud)