模块没有加载msgpack erlang

时间:2015-04-10 08:08:35

标签: module erlang msgpack

尝试在Erlang / OTP中使用rebar在一个简单的发布包中测试msgpack作为依赖项。

我的文件夹结构如下

  

项目 - >应用 - > myapp - > EBIN                             - > SRC

            -> deps -> msgpack (folder)

            -> rebar (exe)

            -> rebar config

            -> rel -> reltool.config
                   -> files (folder)
                   -> mynode (folder)

该功能的代码片段&它的handle_call:

num_pokes() ->
    gen_server:call(?MODULE, num_pokes).

handle_call(num_pokes, _From, State = #state{ num_pokes = PokeCount }) ->
        MP = msgpack:pack(PokeCount),
        io:format (" Message is packed : ~p~n", MP),
        MuP = msgpack:unpack_stream(MP),
        io:format (" Message is now UNpacked : ~p~n", MuP),
        io:format (" Pokecount : ~p~n", PokeCount),
    {reply, PokeCount, State};

错误显示:调用num_pokes()时

=ERROR REPORT==== 10-Apr-2015::12:44:53 ===
** Generic server myapp_server terminating 
** Last message in was num_pokes
** When Server state == {state,2}
** Reason for termination == 
** {'module could not be loaded',
       [{msgpack,pack,[2],[]},
        {myapp_server,handle_call,3,[{file,"src/myapp_server.erl"},{line,32}]},
        {gen_server,try_handle_call,4,[{file,"gen_server.erl"},{line,607}]},
        {gen_server,handle_msg,5,[{file,"gen_server.erl"},{line,639}]},
        {proc_lib,init_p_do_apply,3,[{file,"proc_lib.erl"},{line,237}]}]}
** exception exit: {{undef,
                        [{msgpack,pack,[2],[]},
                         {myapp_server,handle_call,3,
                             [{file,"src/myapp_server.erl"},{line,32}]},
                         {gen_server,try_handle_call,4,
                             [{file,"gen_server.erl"},{line,607}]},
                         {gen_server,handle_msg,5,
                             [{file,"gen_server.erl"},{line,639}]},
                         {proc_lib,init_p_do_apply,3,
                             [{file,"proc_lib.erl"},{line,237}]}]},
                    {gen_server,call,[myapp_server,num_pokes]}}
     in function  gen_server:call/2 (gen_server.erl, line 182)

2 个答案:

答案 0 :(得分:0)

-pa deps/msgpack/ebin作为命令行参数传递给erl。然后它会找到已编译的模块。

答案 1 :(得分:0)

指向mspack的文件夹结构由我显示为./deps(依赖项文件夹)。它应该是./deps/msgpack