ejabberd编译错误

时间:2009-04-20 16:52:20

标签: erlang ejabberd

我是一个巨大的erlang noob,在编译ejabberd时,我收到了这个错误:

make[1]: Entering directory `/usr/src/ejabberd-2.0.5/src/mod_muc'
/usr/local/bin/erlc -W -I .. -pz .. -o .. mod_muc_room.erl
Function: '-process_admin_items_set/4-fun-0-'/2
./mod_muc_room.erl:none: internal error in v3_codegen;
crash reason: {{case_clause,
                   {'EXIT',
                       {function_clause,
                           [{v3_codegen,longest,
                                [[{ker39},{ker38},{ker37},{ker36},{cor36}],
                                 []]},
                            {v3_codegen,longest,2},
                            {v3_codegen,sr_merge,2},
                            {v3_codegen,match_cg,5},
                            {v3_codegen,guard_match_cg,6},
                            {v3_codegen,guard_cg,5},
                            {v3_codegen,'-guard_cg_list/6-anonymous-0-',4},
                            {v3_codegen,flatmapfoldl,3}]}}},
               [{compile,'-select_passes/2-anonymous-2-',2},
                {compile,'-internal_comp/4-anonymous-1-',2},
                {compile,fold_comp,3},
                {compile,internal_comp,4},
                {compile,internal,3}]}
make[1]: *** [../mod_muc_room.beam] Error 1
make[1]: Leaving directory `/usr/src/ejabberd-2.0.5/src/mod_muc'
make: *** [all-recursive] Error 1

导致这种情况的原因是什么?

2 个答案:

答案 0 :(得分:5)

这是R13A中的内部编译器错误 - 自2009-04-15_18起,它已在R13B快照中得到修复。 R13B-0将于2009年4月22日星期三发布,mod_muc将会正常编译。

但是,ejabberd尚未完全兼容R13B - ram_file_io服务器不支持IO服务器协议中的新unicode选项,因此在修复之前,您将无法使用R13B成功启动ejabberd。你现在最好的选择是R12B-5。

答案 1 :(得分:2)

这是内部 Erlang 编译器错误。请升级您的Erlang运行时。可能Erlang R12B-5 是最好的选择。

快速搜索显示来自Erlang / OTP团队的this email。它表明该错误存在于R12B-0之前,因此它可能已在新版本中修复。

Erlang R12B-5可在此处获取:

相关问题