我开始学习Erlang,在读完第一章后,在编译模块时出现了奇怪的错误.
所以当我尝试编译demo.erl时
-module(demo).
-author("alex").
-export([double/1]).
double(Value) ->
Value * 2.
Run Code Online (Sandbox Code Playgroud)
所以我尝试编译它
1> m(demo).
Run Code Online (Sandbox Code Playgroud)
得到了
** exception error: undefined function demo:module_info/0
Run Code Online (Sandbox Code Playgroud)
编译的唯一方法是
make:files(filelib:wildcard("demo.erl")).
Run Code Online (Sandbox Code Playgroud)
我得到了demo.beam,现在甚至在删除了m(demo)之后.开始工作.
任何人都可以向我解释编译器的行为吗?
要从Erlang shell编译模块,请使用以下c命令:
1> c(demo).
{ok,demo}
Run Code Online (Sandbox Code Playgroud)
shell m命令用于检索有关已编译模块的信息:
2> m(demo).
Module: demo
MD5: 422cee9099e136c6dec13dd200927c63
Compiled: December 12 2015, 22:51
Object file: /tmp/demo.beam
Compiler options: []
Exports:
double/1
module_info/0
module_info/1
ok
Run Code Online (Sandbox Code Playgroud)