【问题标题】:module not loading msgpack erlang模块未加载 msgpack erlang
【发布时间】:2015-04-10 08:08:34
【问题描述】:

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

我的文件夹结构如下

项目 -> 应用程序 -> myapp -> ebin -> 源代码

            -> deps -> msgpack (folder)

            -> rebar (exe)

            -> rebar config

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

函数及其handle_call的代码sn-p:

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)

【问题讨论】:

    标签: module erlang msgpack


    【解决方案1】:

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

    【讨论】:

      【解决方案2】:

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

      【讨论】:

        猜你喜欢
        • 2018-05-02
        • 2016-10-09
        • 2014-12-21
        • 2014-06-04
        • 2020-03-17
        • 2017-06-15
        • 2011-10-18
        • 2018-08-02
        • 1970-01-01
        相关资源
        最近更新 更多