发布是跨平台的,以便我可以在一个平台上构建一个发布,然后像在另一个平台上一样运行它,还是应该在我将要运行应用程序的平台上构建?
请您参考如下方法:
发布机制至少需要额外的工作才能使其跨平台
虽然 Erlang beams
是跨平台的,但发布通常包含可能依赖于平台的额外数据。
是
- 自己做。
- 平台依赖库
如果您想在 Mac 上为 Linux 构建版本,您至少需要为 Linux 构建 Erts。例如,如果您使用的是 relx
,则必须 specify它与
{include_erts, "/path/to/erlang"},
{system_libs, "/path/to/erlang"},
其他依赖于平台的库是另一回事。几乎每个复杂的 Erlang 应用程序都使用一些 NIF 或端口,它们通常随发行版一起提供并位于 priv
中。如果你使用任何一个,你将不得不为你的目标平台交叉编译它们。你可能必须自己处理它