ejabberd 使用 Elixir 编译失败
ejabberd failed compilation with Elixir
我是 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
有问题,但我不知道如何解决。请帮忙!
好吧,事实证明 ejabberd 还没有为 Erlang 19 做好准备。它的一些依赖项似乎仍然存在于 OTP 18 世界中。所以我将 Erlang 降级到 18,将 Elixir 降级到 1.2.6,现在编译正常了。
我是 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
有问题,但我不知道如何解决。请帮忙!
好吧,事实证明 ejabberd 还没有为 Erlang 19 做好准备。它的一些依赖项似乎仍然存在于 OTP 18 世界中。所以我将 Erlang 降级到 18,将 Elixir 降级到 1.2.6,现在编译正常了。