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

ecfdbz9o  于 2022-12-08  发布在  Erlang
关注(0)|答案(5)|浏览(143)

它说Elixir有一个叫做elixirc的工具,Erlang有一个叫做erlc的工具来编译要使用的模块,紧接着它说你可以用elixir命令行工具运行代码。
有没有办法用Elixir或Erlang编译一个二进制可执行文件?(我可以用chmod +x binary_name编译一个二进制可执行文件,然后用./binary_name从同一个目录运行它)

wi3ka0sx

wi3ka0sx1#

Escripts在一定程度上支持Erlang,但是你仍然需要在你的机器上安装Erlang。更多信息请参考以下答案:Elixir or Hex portable package format?

yvfmudvl

yvfmudvl2#

请确保您 checkout Distillery。它可以做您需要的事情,而不必处理钢筋。
将其添加到 * mix. exs * 文件的依赖项中,然后运行mix release

defp deps do
  [{:distillery, "~> 0.9"}]
end

他们的文档非常棒:

sauutmhj

sauutmhj3#

你可以使用rebar这样的工具来生成一个包含ert的版本,这样就可以在一台没有安装erlang的机器上运行这个版本,但是包含的ert与构建这个版本的操作系统相对应,也就是说,如果是在windows上构建的,则是windows二进制文件。

yk9xbfzb

yk9xbfzb4#

从Elixir 1.9开始,您可以使用Elixir的内置版本。它是Distillery的轻量级替代品。

**注意事项:**它不会像Go语言那样远程创建一个可以在任何地方运行的二进制可执行文件,而且你的目标必须与CPU架构和操作系统相匹配。

若要建立核发执行,请执行下列步骤:

mix release

点击此处阅读更多信息:https://hexdocs.pm/mix/Mix.Tasks.Release.html

lymgl2op

lymgl2op5#

现在有一些工具可以让你创建一个独立的可执行二进制文件,它不需要任何对目标机器的依赖。
烤盘:https://github.com/bake-bake-bake/bakeware
玉米煎饼:https://github.com/burrito-elixir/burrito

相关问题