发布是跨平台的,以便我可以在一个平台上构建一个发布,然后像在另一个平台上一样运行它,还是应该在我将要运行应用程序的平台上构建?

请您参考如下方法:

发布机制至少需要额外的工作才能使其跨平台

虽然 Erlang beams 是跨平台的,但发布通常包含可能依赖于平台的额外数据。

  • 自己做。
  • 平台依赖库

如果您想在 Mac 上为 Linux 构建版本,您至少需要为 Linux 构建 Erts。例如,如果您使用的是 relx,则必须 specify它与

{include_erts, "/path/to/erlang"}, 
{system_libs, "/path/to/erlang"}, 

其他依赖于平台的库是另一回事。几乎每个复杂的 Erlang 应用程序都使用一些 NIF 或端口,它们通常随发行版一起提供并位于 priv 中。如果你使用任何一个,你将不得不为你的目标平台交叉编译它们。你可能必须自己处理它


评论关闭
IT序号网

微信公众号号:IT虾米 (左侧二维码扫一扫)欢迎添加!