我是Elixir的新手,我正在尝试使用页面https://docs.ejabberd.im/developer/elixir/上的说明设置ejabberd(我在Erlang / OTP 19和Elixir 1.3.2上)。
执行mix compile
时,我得到一个很长的屏幕输出,它在编译错误中终止:
...
{line,1239}]},
{lager_transform,walk_ast,2,
[{file,
"/media/common/code/elixir/ejapp/deps/lager/src/lager_transform.erl"},
{line,62}]},
{compile,
'-foldl_transform/2-anonymous-2-',
2,
[{file,"compile.erl"},
{line,958}]},
{compile,foldl_transform,2,
[{file,"compile.erl"},
{line,960}]},
{compile,
'-internal_comp/4-anonymous-1-',
2,
[{file,"compile.erl"},
{line,315}]},
{compile,fold_comp,3,
[{file,"compile.erl"},
{line,341}]},
{compile,internal_comp,4,
[{file,"compile.erl"},
{line,325}]},
{compile,
'-do_compile/2-anonymous-0-',2,
[{file,"compile.erl"},
{line,175}]}]}
could not compile dependency :ejabberd, "mix compile" failed. You can recompile this dependency with "mix deps.compile ejabberd", update it with "mix deps.update ejabberd" or clean it with "mix deps.clean ejabberd"
==> ejapp
** (Mix) Encountered compilation errors
我不知道错误是什么以及如何解决它。看起来有一些名为lager
的问题,但我不知道如何修复它。请帮忙!
答案 0 :(得分:1)
嗯,事实证明ejabberd还没有为Erlang 19做好准备。它的一些依赖性似乎仍然存在于OTP 18世界中。因此,我将Erlang降级为18,将Elixir降级为1.2.6,现在编译得很好。