4

Lisp Flavored Erlang (LFE) 可以在 Windows 上运行吗?我正在使用 LFE 0.6/Erlang 5.8.2/Windows 7 32 位。我将 lfe shell 脚本复制为批处理文件(将 $@ 替换为 %1 %2 %3 %4),它给了我这个:

D:\projects\checkout\lfe>lfe
{"init 终止于 do_boot",{undef,[{lfe_boot,start,[]},{init,start_it,1},{init,start_em,1}]}}

崩溃转储被写入:erl_crash.dump
init 终止于 do_boot()
4

2 回答 2

3

这里的问题是 Erlang 找不到 LFE ebin 目录。解决这个问题的两种方法是:

  • -pa <lfe ebin dir>在启动 LFE 时使用显式参数,无论是在lfe.bat脚本中还是在您调用它时。简单但硬接线。

  • 使用ERL_LIBS环境变量。这在code模块文档http://erlang.org/doc/man/code.html中有描述。如果你创建一个额外的 Erlang 库目录,比如说c:\projects\erlang,删除 Erlang 应用程序,它像 LFE 一样遵循 Erlang 应用程序目录结构,并指向ERL_LIBS它,那么代码服务器将自动将它找到的 ebin 目录添加到它的代码路径中。

如何在 Ubuntu Karmic 上安装 LFE?但在 UNIX 上下文中。

ERL_LIBS绝对应该更好地宣传该功能。

编辑:回复@Shantanu Kumar 的评论。

我无权访问 Windows 机器,因此无法正确测试它。问题似乎是 usinglfe_boot尝试启动ttysl似乎在 Windows 上不起作用的端口程序,至少在运行erl.exe. 一些尝试的解决方案:

  • 改为使用werl.exe。这可能有效,但无论如何我都会这样做。

  • 尝试以正常方式启动 Erlang werl.exe -pa ebin(以获得正确的加载路径)并手动启动 LFE shelllfe_shell:server().

  • 尝试使用werl.exe -pa ebin -noshell -s lfe_shell start. 这将lfe_shell作为shell运行,但^G不可用。

此外,虽然使用它很好,但您不需要使用 LFE shell 来运行 LFE,您可以使用普通的 Erlang shell 并以“正常”方式调用 LFE 函数。使用两种 io 格式,您可能会变得有点精神分裂,但没有问题。:-)

希望这可以帮助。

于 2011-01-16T00:31:39.687 回答
1

我很抱歉; 我知道这个帖子基本上已经死了,但是我没有找到关于这个主题的其他帖子,因此在这里回复似乎很合适。

我相信我找到了一种有效的方法。非常简单:只需使用 MSYS2 和 Mingw-w64 构建 LFE,然后通过 ./bin/lfe 从构建目录运行它。

似乎需要进行一次调整:bin/lfe 的最后一行似乎需要进行调整以调用“werl”而不是“erl”。老实说,我不知道这是为什么;我对 Erlang 太敏感了,无法说出原因。

我还在我的个人博客上详细记录了这一点:http ://www.vultaire.net/blog/2016/05/02/installing-lisp-flavored-erlang-on-windows/

希望这可以帮助某人!

于 2016-05-02T07:42:48.017 回答