下午好人,
我最近对Erlang和函数式编程感兴趣。我试图在不打开Erlang shell的情况下运行这个简单的hello world示例。我能够在MACOSX(Yosemite)中成功运行它,但是,我想使用我的Fedora 20 VM。所以在Fedora(Linux)(甚至是Windows 7)中,我在尝试运行编译光束时遇到以下错误:
{"init terminating in do_boot",{undef,[{heythere,start,[],[]},{init,start_it,1,[]},{init,start_em,1,[]}]}}
Crash dump was written to: erl_crash.dump
init terminating in do_boot ()
这些是我用来运行文件的开关:
erl -noshell -start -s heythere -init -stop
我甚至替换了“-s”开关并使用“-run”无济于事。我能够在shell中运行模块,但不能在它之外运行。有什么我做错了吗?
代码:
-module(heythere).
-export([hello_world/0, this_function/0, both/0]).
hello_world() ->
io:fwrite("hello, world\n").
this_function() ->
io:fwrite("This is another function...ok~n").
both() ->
hello_world(),
this_function().
我试着查看erl_crash.dump,但它超过1000多行,我无法做出正面或反面。 : - (
提前多谢你们。
答案 0 :(得分:3)
在-s
标志中,您指定了一个模块heythere
,但没有使用的功能。 erl
默认使用start
作为函数,但您未在模块中指定start
函数,因此erl
不知道如何运行程序。< / p>