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

17
Richard在metabrew上将他的应用程序移植到Erlang。riak、couchdb和其他人也做了同样的事情。他提到提取所需的部分,或将整个VM包含到分发中。这里的主要特点是:程序不需要在目标机器上安装Erlang。
因此问题是,您如何逐步将Erlang程序打包成Windows(和较不重要的Linux)可执行文件? P.S. 我看过SAE项目,并阅读了这里所有相关的问题。没有一个回答我的问题。
1个回答

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

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

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

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


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接