gpt4 book ai didi

erlang - 无法从命令行启动空的 OTP 应用程序

转载 作者:行者123 更新时间:2023-12-02 01:09:46 26 4
gpt4 key购买 nike

我已经用 rebar 创建了一个 OTP 应用程序框架:

$ rebar create-app appid=test

然后我用rebar compile编译了它,当我运行的时候

$ erl -pa ebin -s test

我收到这个错误

{"init terminating in do_boot",{undef,[{test,start,[],[]},{init,start_it,1,[]},{init,start_em,1,[]}]}}

但是如果我从 shell 中调用 start 它会起作用:

$ erl -pa ebin

Erlang R15B01 (erts-5.9.1) [source] [smp:2:2] [async-threads:0] [hipe] [kernel-poll:false]

Eshell V5.9.1 (abort with ^G)
1> application:start(test).
ok

如何从操作系统命令行启动应用程序?

编辑:

我觉得我需要运行

$ erl -pa ebin -s application start test

现在我没有收到任何错误,但应用程序仍未启动...

最佳答案

erl -pa ebin/-eval "application:start(test)"

由于 test_app.erl 中的 start 函数的参数为​​ 2,因此无法使用 erl 开关 直接调用它-s(或 -run),只有 arity 0 或 1 可以使用这些开关调用(参见 http://erlang.org/doc/man/erl.html)。

您可以添加一个包装函数,依次调用 start/2,但我认为 -eval 更优雅。

关于erlang - 无法从命令行启动空的 OTP 应用程序,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18809746/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com