我有一个Haxe应用程序,我想将其提供给使用Windows系统的人。我使用Hashlink在本地运行该应用程序,并且效果很好。
我想知道是否应该通过Hashlink分发我的应用程序。可以为我建立一个.exe吗?
最佳答案
似乎今天(2017年3月10日)不支持立即生成可分发的二进制文件:
> haxe -main Main -hl main.c
Code generated in main.c automatic native compilation not yet implemented
希望它将很快得到支持!
注意:我正在谈论使用hashlink构建最终的可执行文件。在此不介绍的一种完全独立的方法是,可以使用您的输出hl位代码交付hashlink虚拟机。
桑尼人在这里停止阅读。
但是与此同时...如果您从源代码构建hashlink,则今天可以使用hashlink生成二进制文件。
警告:
这不是您问题的通用跨平台答案,而只是我在Linux上的经验。
可能很快会有比这更好的方法。
但是我想把这些笔记记下来,甚至让我自己以后再回忆。
这是我在64位Ubuntu 14.04上必须执行的操作:
安装用于构建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'
克隆哈希链接存储库:(修订说明:
eaa92b
)cd ~/dev/
git clone https://github.com/HaxeFoundation/hashlink.git
cd hashlink
在
# Linux
的Makefile
部分的〜67行中,添加以下标志:CFLAGS += -I ../mbedtls/include
LIBFLAGS += -L../mbedtls/library
现在使用
make
进行构建如果一切正常,您将看到两个重要的输出文件
hl
和libhl.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!