1

application:start(Name) を使用してアプリケーションを正常に起動できる erlang アプリケーションを作成しました。

rebar を使用してコンパイルする makefile ステップを作成してから、手動でアプリケーションを起動しようとしました。しかし、うまくいかないようです。これが私が今持っているものです:

all: compile start

compile:
    ./rebar compile

start:
    erl -s application load shoutcast -s application start shoutcast

これが行うことは、インタラクティブな erlang シェルをロードすることだけです

4

2 に答える 2

2
Aplication:start(Name)

通話

Name:start/2 

-s フラグが呼び出されている間

Name:start() or Name:start([arg1, arg2, ...]).

したがって、この方法で Application を正常に呼び出すことはできないと思います。リリースとブートファイルを作成したくないと仮定すると、メソッドをアプリケーションモジュール start/0 に追加できます (私はそう思います)。

-module(shoutcast).

-behaviour(application).

%% Application callbacks
-export([start/2, stop/1]).

%% Allow for erl -s invocation 
-export([start/0]).

 ... Snip ...

start() ->
    application:start(shoutcast).

... Snip ...

次に、メイクファイル内で

erl -s shoutcast

これがベスト プラクティスに違反しているかどうかはわかりませんが、うまくいくはずです。

于 2012-10-22T03:17:49.550 に答える