elixir或erlang程序可以编译成独立的二进制文件吗?

时间:2015-08-06 16:53:35

标签: compilation erlang elixir

它看到elixir有一个名为elixirc的工具,而erlang有一个名为erlccompile modules的工具供使用。它紧接着说,然后您可以使用elixir命令行工具运行代码。

有没有办法用elixir或erlang编译二进制可执行文件? (我可以chmod +x binary_name,然后使用./binary_name

从同一目录运行

4 个答案:

答案 0 :(得分:13)

Escripts在某种程度上支持,但您仍需要在您的计算机上安装Erlang。有关详细信息,请参阅此答案:Elixir or Hex portable package format?

答案 1 :(得分:9)

您可以使用rebar之类的工具生成一个也包含erts的版本,这样就可以在未安装erlang的机器上运行所述版本。但是所包含的erts对应于构建版本的操作系统,即windows二进制文件(如果构建在windows上)。

答案 2 :(得分:9)

请务必查看Distillery https://github.com/bitwalker/distillery它可以满足您的需求,而无需处理钢筋。

将此添加到mix.exs文件的依赖项中,然后运行mix release。 defp deps do [{:distillery, "~> 0.9"}] end

他们的文件很棒。 https://hexdocs.pm/distillery/home.html

答案 3 :(得分:1)

您可以使用自Elixir 1.9起的 Elixir内置版本。它是Distillery的轻量级替代方案。

注意事项: 它不会像Go那样远程创建任何内容,因为它可以在几乎任何地方运行单个二进制可执行文件。另外,您的目标必须匹配CPU架构和操作系统。

要构建发布运行:

mix release

在此处了解更多信息: https://hexdocs.pm/mix/Mix.Tasks.Release.html