如何将Erlang程序编译成独立的Windows可执行文件?

时间:2012-08-03 13:41:15

标签: windows erlang executable

metabrew结束时,Last.fm的Richard已ported his apps to Erlang。它也是由riak,couchdb和其他人完成的。他提到提取所需的部分,或将整个VM包含在发行版中。这里的主要特点是:程序不需要在目标机器上安装Erlang。

所以问题是,你如何一步一步地将一个Erlang程序打包成一个windows(以及不那么重要的linux)可执行文件?

P.S。我见过SAE项目,我在这里已经阅读了所有相关问题。没有回答我的问题。

2 个答案:

答案 0 :(得分:8)

  1. 创建可移植版本的Erlang(例如,使用此讨论组中的方法:Erlang on Windows from USB)。本练习中最重要的部分是创建具有正确路径的erl.ini文件,该文件可用于从任何所需位置启动Erlang。
  2. 创建应用程序的Erlang版本和发行版启动脚本。有关说明,请参阅Erlang documentation about releases
  3. 创建Windows命令行脚本以启动应用程序。这将只使用您的启动脚本作为参数运行Erlang(例如erl -boot someapp)。 Erlang将读取erl.ini文件以从正确的位置加载您的应用程序和系统库。
  4. 创建一个Windows安装应用程序,其中包含所有相关部分:
    • Erlang发行版
    • erl.ini文件,其中所有路径都作为要由安装应用程序填写的变量
    • 发布您的应用程序(所有梁文件和启动脚本)
    • 使用启动脚本启动应用程序的命令行脚本
  5. 从Windows安装程序的角度来看它应该如何工作:

    • 询问用户在何处安装应用程序(或使用程序文件中的某个默认位置)
    • 将Erlang发行版,您的应用程序和启动脚本复制到正确的位置
    • 更新erl.ini和命令行脚本以使用所选位置
    • 创建将执行命令行脚本的图标或自动启动条目

    现在,当用户单击图标或以其他方式执行命令行脚本时,他们实际上将从自定义位置运行Erlang,而自定义位置将根据Erlang启动脚本启动应用程序。这只是一个普遍的想法,因为命令行脚本应该例如检查当用户第二次启动应用程序时Erlang是否已经运行,或者它可能需要能够卸载它。

答案 1 :(得分:4)