简单的Erlang示例不会运行(错误)

时间:2014-10-23 20:50:14

标签: linux functional-programming erlang

下午好人,

我最近对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多行,我无法做出正面或反面。 : - (

提前多谢你们。

1 个答案:

答案 0 :(得分:3)

-s标志中,您指定了一个模块heythere,但没有使用的功能。 erl默认使用start作为函数,但您未在模块中指定start函数,因此erl不知道如何运行程序。< / p>