它说Elixir有一个叫做elixirc的工具,Erlang有一个叫做erlc的工具来编译要使用的模块,紧接着它说你可以用elixir命令行工具运行代码。有没有办法用Elixir或Erlang编译一个二进制可执行文件?(我可以用chmod +x binary_name编译一个二进制可执行文件,然后用./binary_name从同一个目录运行它)
elixirc
erlc
elixir
chmod +x binary_name
./binary_name
wi3ka0sx1#
Escripts在一定程度上支持Erlang,但是你仍然需要在你的机器上安装Erlang。更多信息请参考以下答案:Elixir or Hex portable package format?
yvfmudvl2#
请确保您 checkout Distillery。它可以做您需要的事情,而不必处理钢筋。将其添加到 * mix. exs * 文件的依赖项中,然后运行mix release。
mix release
defp deps do [{:distillery, "~> 0.9"}] end
他们的文档非常棒:
sauutmhj3#
你可以使用rebar这样的工具来生成一个包含ert的版本,这样就可以在一台没有安装erlang的机器上运行这个版本,但是包含的ert与构建这个版本的操作系统相对应,也就是说,如果是在windows上构建的,则是windows二进制文件。
yk9xbfzb4#
从Elixir 1.9开始,您可以使用Elixir的内置版本。它是Distillery的轻量级替代品。
**注意事项:**它不会像Go语言那样远程创建一个可以在任何地方运行的二进制可执行文件,而且你的目标必须与CPU架构和操作系统相匹配。
若要建立核发执行,请执行下列步骤:
点击此处阅读更多信息:https://hexdocs.pm/mix/Mix.Tasks.Release.html
lymgl2op5#
现在有一些工具可以让你创建一个独立的可执行二进制文件,它不需要任何对目标机器的依赖。烤盘:https://github.com/bake-bake-bake/bakeware玉米煎饼:https://github.com/burrito-elixir/burrito
5条答案
按热度按时间wi3ka0sx1#
Escripts在一定程度上支持Erlang,但是你仍然需要在你的机器上安装Erlang。更多信息请参考以下答案:Elixir or Hex portable package format?
yvfmudvl2#
请确保您 checkout Distillery。它可以做您需要的事情,而不必处理钢筋。
将其添加到 * mix. exs * 文件的依赖项中,然后运行
mix release
。他们的文档非常棒:
sauutmhj3#
你可以使用rebar这样的工具来生成一个包含ert的版本,这样就可以在一台没有安装erlang的机器上运行这个版本,但是包含的ert与构建这个版本的操作系统相对应,也就是说,如果是在windows上构建的,则是windows二进制文件。
yk9xbfzb4#
从Elixir 1.9开始,您可以使用Elixir的内置版本。它是Distillery的轻量级替代品。
**注意事项:**它不会像Go语言那样远程创建一个可以在任何地方运行的二进制可执行文件,而且你的目标必须与CPU架构和操作系统相匹配。
若要建立核发执行,请执行下列步骤:
点击此处阅读更多信息:https://hexdocs.pm/mix/Mix.Tasks.Release.html
lymgl2op5#
现在有一些工具可以让你创建一个独立的可执行二进制文件,它不需要任何对目标机器的依赖。
烤盘:https://github.com/bake-bake-bake/bakeware
玉米煎饼:https://github.com/burrito-elixir/burrito