我是Erlang编程和Stack Overflow的初学者,所以我希望这不是一个很愚蠢的问题。

我已经在Windows 10的官方网站上安装了Erlang/OTP 20.1。我试图从erl,werl或git bash(从正确的目录)编译一些简单的Erlang模块,但出现以下错误:

3> c(useless).
useless.erl: internal error in beam_asm;
crash reason: undef

in function  maps:size/1
 called as maps:size(#{})
in call from beam_dict:atom/2 (beam_dict.erl, line 88)
in call from beam_asm:assemble/5 (beam_asm.erl, line 65)
in call from beam_asm:module/5 (beam_asm.erl, line 62)
in call from compile:beam_asm/2 (compile.erl, line 1454)
in call from compile:'-internal_comp/5-anonymous-1-'/3 (compile.erl, line 342)
in call from compile:fold_comp/4 (compile.erl, line 369)
in call from compile:internal_comp/5 (compile.erl, line 353)

您认为出了什么问题?无论将其保存在何处,每个模块都会出现完全相同的错误。有趣的是,我昨天可以编译并运行这些模块而没有问题,但是昨天之前我遇到了同样的问题!

非常感谢!

伯纳特

最佳答案

您是否创建了一个名为“ map ”的模块?在这种情况下,问题在于您已经用不具有此功能的标准 map 模块(其中包含size/1函数)覆盖了该模块,因此将其称为“undef”。

关于compiler-errors - 在Windows中编译Erlang模块时出错,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/48094998/

10-10 07:45