【发布时间】:2019-01-17 15:11:45
【问题描述】:
我想从源代码编译 MongooseIM,但在 Ubuntu 上编译代码时出错:
Ubuntu 版本:Ubuntu 18.04.1 LTS 64 位(最新) Erlang 版本:21(最新)
使用以下命令编译后
- $ git clone https://github.com/esl/MongooseIM
- $ sudo ./rebar3 编译
以下是 rebar3.crashdump 的内容:
Error: {badmatch,{error,enoent}}
[{rebar_erlc_compiler,modify_erlcinfo,5,
[{file,"/home/tristan/Devel/rebar3/_build/prod/lib/rebar/src/rebar_erlc_compiler.erl"},
{line,477}]},
{rebar_erlc_compiler,'-update_erlcinfo_fun/2-fun-0-',4,
[{file,"/home/tristan/Devel/rebar3/_build/prod/lib/rebar/src/rebar_erlc_compiler.erl"},
{line,463}]},
{lists,foldl,3,[{file,"lists.erl"},{line,1263}]},
{rebar_erlc_compiler,update_erlcinfo,3,
[{file,"/home/tristan/Devel/rebar3/_build/prod/lib/rebar/src/rebar_erlc_compiler.erl"},
{line,448}]},
{rebar_erlc_compiler,'-update_erlcinfo_fun/2-fun-0-',4,
[{file,"/home/tristan/Devel/rebar3/_build/prod/lib/rebar/src/rebar_erlc_compiler.erl"},
{line,463}]},
{lists,foldl,3,[{file,"lists.erl"},{line,1263}]},
{rebar_erlc_compiler,init_erlcinfo,4,
[{file,"/home/tristan/Devel/rebar3/_build/prod/lib/rebar/src/rebar_erlc_compiler.erl"},
{line,411}]},
{rebar_erlc_compiler,compile_dirs,5,
[{file,"/home/tristan/Devel/rebar3/_build/prod/lib/rebar/src/rebar_erlc_compiler.erl"},
{line,195}]}]
问题:
- 为什么它在 'home/tristan/Devel/rebar3' 路径中执行某些操作?因为我只有 1 条与之相似的路径,即 'home/ricky/...'
- 我什至从 安装了钢筋
$ sudo apt-get install rebar
$钢筋-V
rebar 2.6.4 19 20161102_054252 没有可用的 VCS 信息。
但同样的错误 3. 删除最新版本后,我尝试使用较低版本的 erlang,即 20,但仍然没有帮助。
请提出建议
【问题讨论】:
-
你不需要用apt安装rebar;您正在使用捆绑的 rebar3 并通过 apt 安装 rebar2 与它无关。我的系统中有三个 erlang 版本,并且 20 和 19 都编译成功。在降级到 erlang 20 之前,您是否清理过构建 (
./rebar3 clean)?
标签: erlang erl mongoose-im