我正尝试从一个过时的、未经维护的构建工具转换到Erlang.mk。我有一个使用[Erlang.mk][1]创建的版本,但在启动时失败了,我相信是因为应用程序的启动顺序错误。如何指定应用程序的启动顺序?我本以为它会按照Makefile的LOCAL_DEPS变量中指定的顺序启动应用程序,但这似乎并没有发生。我已经在文档中查找了所有我能找到的地方,还有谷歌,但没有找到任何东西。
LOCAL_DEPS
xwbd5t1u1#
顺序不取决于erlang.mk,而是取决于Erlang VM启动应用程序时的顺序。当systools启动特定应用程序时,它会读取.app文件,检查应该先启动哪个应用程序,然后启动它们。只有当所有必备应用程序都成功启动时,才会启动请求的应用程序。请参阅description of the app文件。Example from here:
erlang.mk
systools
.app
{application, humbundee, [{description, "Humble Bundle downloader written in Erlang"}, {vsn, "0.0.1"}, {modules, [ =MODULES= ]}, {registered, [hbd_sup, hbd_get_sup]}, {applications, [kernel, stdlib, sasl, lager]}, {mod, {hbd_app, []}} ]}.
这表示必须先启动kernel、stdlib、sasl和lager,然后才能启动humbundee。
kernel
stdlib
sasl
lager
humbundee
hlswsv352#
它是以.app档案applications清单为基础。每个应用程序及其相依性都会在继续下一个应用程序之前启动。
applications
2条答案
按热度按时间xwbd5t1u1#
顺序不取决于
erlang.mk
,而是取决于Erlang VM启动应用程序时的顺序。当systools
启动特定应用程序时,它会读取.app
文件,检查应该先启动哪个应用程序,然后启动它们。只有当所有必备应用程序都成功启动时,才会启动请求的应用程序。请参阅description of the app文件。Example from here:
这表示必须先启动
kernel
、stdlib
、sasl
和lager
,然后才能启动humbundee
。hlswsv352#
它是以
.app
档案applications
清单为基础。每个应用程序及其相依性都会在继续下一个应用程序之前启动。