如何使用 Hashlink 分发我的 Haxe 应用程序?
How do I Distribute my Haxe application with Hashlink?
我有一个 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.
上的经验
- 可能很快就会有比这更好的方法。
- 但我想把这些笔记记下来,以备日后回忆。
这是我在 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 存储库:(修订说明:eaa92b
)
cd ~/dev/
git clone https://github.com/HaxeFoundation/hashlink.git
cd hashlink
在 Makefile
的 # Linux
部分,~第 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!
我有一个 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. 上的经验
- 可能很快就会有比这更好的方法。
- 但我想把这些笔记记下来,以备日后回忆。
这是我在 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 存储库:(修订说明:eaa92b
)
cd ~/dev/
git clone https://github.com/HaxeFoundation/hashlink.git
cd hashlink
在 Makefile
的 # Linux
部分,~第 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!