我已经创建了一个erlang应用程序,我可以使用application:start(Name)来成功启动应用程序。
我尝试创建一个makefile步骤,使用rebar进行编译,然后手动启动应用程序。但它似乎没有用。这就是我现在所拥有的:
all: compile start
compile:
./rebar compile
start:
erl -s application load shoutcast -s application start shoutcast
所有这一切都会加载一个交互式的erlang shell
答案 0 :(得分: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 ...
然后在你的makefile中
erl -s shoutcast
我不确定这是否违反了最佳做法,但它应该有效。
答案 1 :(得分:0)
将有用的东西保存在普通的Makefile中会更好 https://github.com/virtan/erlang-makefile