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

Ale*_* V. 14 windows erlang executable

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

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

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

Gre*_*reg 8

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

从Windows安装程序的角度来看它应该如何工作:

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

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