1

我是一个巨大的 erlang 菜鸟,在编译 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

什么会导致这个?

4

2 回答 2

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。

于 2009-04-20T18:55:22.033 回答
2

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

快速搜索显示来自 Erlang/OTP 团队的这封电子邮件。它指出该错误存在于 R12B-0 之前,因此它可能已在较新的版本中修复。

Erlang R12B-5 在这里可用:

于 2009-04-20T18:23:05.527 回答