我刚刚使用apt-get
将Erlang下载到 Ubuntu 10.10 。如何运行Erlang附带的示例(您可以通过apt-get install erlang-examples
获得的示例)。我试着去他们存储的目录并编译ball.erl
,但是我收到了这个错误:
ball.bea#: error writing file
error
答案 0 :(得分:12)
普通用户无法写入存储这些示例的目录。要编译.erl
文件,编译器需要能够写出已编译的.beam
文件。
解决此问题的一种方法是将文件复制到可以写入的目录中并在那里编译它们:
$ mkdir erlex
$ cd erlex
$ cp /usr/lib/erlang/lib/gs-1.5.11/examples/src/* .
$ erlc *.erl
您需要安装erlang-dev
软件包才能正常工作。
您可以像这样运行ball
示例:
$ erl -s ball
ball
这里是模块名称,Erlang模拟器默认调用该模块中的start/0
函数,在这种情况下这是正确的。
然而,您实际上不必编译这些示例。 Ubuntu erlang-examples
包随附已经编译过:
$ cd /usr/lib/erlang/lib/gs-1.5.11/examples/ebin
$ erl -s ball
关闭每个GUI窗口后,说q().
退出模拟器。这一点对你来说可能看起来很奇怪,直到你意识到Erlang的所有内容都设计得很长时间。仅仅模拟器运行的最后一个进程已停止这一事实并不足以让BEAM仿真器自行关闭。毕竟,之后可能会在同一个模拟器中启动其他东西。