在Windows上编译Erlang代码

安装了Erlang 13B并试图按照教程。

每次我到达c(tut) ,我得到一个错误,而不是(ok, tut) ,所以好像没有安装模块。 任何人都可以指向正确的方向吗?

我试过Emacs,但我真的不知道如何使用它,甚至没有接近获取Erlang模式工作。 例如,我在哪里input:

  (setq load-path (cons "C:/Program Files/erl5.6.2/lib/tools-<ToolsVer>/emacs" load-path)) (setq erlang-root-dir "C:/Program Files/erl5.6.2") (setq exec-path (cons "C:/Program Files/erl5.6.2/bin" exec-path)) (require 'erlang-start) 

Solutions Collecting From Web of "在Windows上编译Erlang代码"

为了使c(tut)工作,当前目录中必须有一个tut.erl文件。

如果从命令行启动Erlang解释器,这很容易完成,就像在Linux和OS X系统上常见的那样,但这不是Windows上的常见模式。 当您从“开始”菜单中的图标在Windows上启动Erlang时,当前工作目录默认为werl.exe的位置,而不是tut.erl文件所在的tut.erl

要使命令按预期工作,必须在启动Erlang shell之后将工作目录更改为tut.erl的位置。 如果tut.erl在桌面上,在Vista或Windows 7上的命令将是这样的:

 cd("c:/Users/myname/Desktop"). 

(是的,你必须使用正斜杠,Erlang字符串中的反斜杠是特殊的。)

在Windows XP和更旧版本上,桌面文件夹被埋得更深。 将werl.exe放在系统PATH并在这些系统上使用命令行可能会更简单。

这是没有必要的,但你可能要考虑安装Cygwin 。 它的Bash shell将为您提供更多的Linux或OS X环境,这将帮助您使用针对这些操作系统构建的其他教程。

安装Erlang后打开shell并执行:

 1> pwd(). C:/Program Files/erl5.7.1/usr ok 2> 

假设你有一个文件; “tut.erl”在您的桌面上。 内容可能如下所示:

 -module(tut). -compile(export_all). hello_world() -> hello. 

您必须先将当前工作目录的路径更改为桌面(或者您想要进行编译的地方)。 也许这样:

 2> cd("F:/Desktop"). F:/Desktop ok 3> 

然后你可以执行编译。

 3> c(tut). {ok,tut} 4> 

然后测试模块

 4> tut:hello_world(). hello 5> 

更多信息请参考这里的文档: Erlang官方文档关于shell的更多信息,请看这里: Shell模块

希望这会让你开始。

您也可以在YourErlangInstallationPath\usr\下创建一个名为.erlang的初始化文件,

该文件的内容应该是这样的;

 io:格式(“在〜p〜n中咨询.erlang”,
 [元件(2,文件:get_cwd())])。
 %%编辑到您存储代码的目录
 C:CD( “O:/Erlang.Umut”)。
 io:format(“Now in:〜p〜n”,[element(2,file:get_cwd())])。

它会自动改变你的工作文件夹的路径。 (显然,我的路径是O:/Erlang.Umut ,你需要用你的替换它。)

每次启动控制台时无需更改文件夹。 控制台将能够直接到达你的erl文件。

我最近在窗户上尝试Erlang。

使用控制台窗口来确保你正在使用的文本编辑器给你的文件正确的扩展名即。 filename.erl而不是filename.erl.txt就像我的!

当我在记事本中保存我的文件时,它添加了.txt文件,所以我保存在unicode中。 固定

如果你仍然得到“tut:erl:none:没有这样的文件或目录”,文件名是错误的。 如果你打开一个Windows命令提示符并移动到你的桌面并输入“dir”,你会看到tut.erl真的被命名为tut.erl.txt。 键入“ren tut.erl.txt tut.erl”,现在你的编译将会工作。

当werl的当前工作目录与要编译的文件相同时,文件名被作为参数给出,而没有整个路径。 否则,例如。 假设tut.erl放在C:\ ErLang教程中,可以尝试编译为,

 c("C:\\ErLang tutorials\\tut"). 

注意:

  1. 没有双引号:导致语法错误
  2. 反斜杠是使用转义序列给出的