从源代码编译 MongooseIM 时 rebar_core 中未捕获的错误

Posted

技术标签:

【中文标题】从源代码编译 MongooseIM 时 rebar_core 中未捕获的错误【英文标题】:Uncaught error in rebar_core while compiling MongooseIM from source code 【发布时间】: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)? 【参考方案1】:
$ ./rebar3 clean

工作就像一个魅力。 Thanks to Reith in this comment.

【讨论】:

以上是关于从源代码编译 MongooseIM 时 rebar_core 中未捕获的错误的主要内容,如果未能解决你的问题,请参考以下文章

如何在Rebar3编译时添加额外的文件或目录?

Rebar3 无法下载对 Windows 10 的依赖

Rebar3:如何从 erlang 引用库的源工件?

rebar使用

在 Windows 上使用 rebar 编译 NIF 项目

为啥我不能在使用 rebar3 生成的应用程序中运行 rebar3 命令?