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()
最佳答案
这里的问题是 Erlang 找不到 LFE ebin 目录。解决这个问题的两种方法是:
-pa <lfe ebin dir>
参数,无论是在 lfe.bat
脚本中还是在您调用它时。简单但硬连线。 ERL_LIBS
环境变量。这在 code
模块文档 http://erlang.org/doc/man/code.html 中有描述。如果你创建一个额外的 Erlang 库目录,比如 c:\projects\erlang
,像 LFE 一样删除遵循 Erlang 应用程序目录结构的 Erlang 应用程序,并将 ERL_LIBS
指向它,那么代码服务器会自动将它在那里找到的 ebin 目录添加到它的代码路径中。 这也在 How do I install LFE on Ubuntu Karmic? 中描述,但在 UNIX 上下文中。
ERL_LIBS
功能绝对应该得到更好的宣传。编辑: 回复@Shantanu Kumar 的评论。
我无法访问 Windows 计算机,因此无法对其进行正确测试。问题似乎是使用
lfe_boot
尝试启动端口程序 ttysl
,它似乎在 Windows 上不起作用,至少在运行 erl.exe
时不会。一些尝试的解决方案:werl.exe
。这可能有效,但无论如何我都会这样做。 werl.exe -pa ebin
以正常方式启动 Erlang(以获得正确的加载路径)并使用 lfe_shell:server().
werl.exe -pa ebin -noshell -s lfe_shell start
启动 Erlang。这将 lfe_shell
作为 shell 运行,但 ^G
将不可用。 此外,虽然使用它很好,但您不需要使用 LFE shell 来运行 LFE,您可以使用普通的 Erlang shell 并以“普通”方式调用 LFE 函数。两种 io 格式可能会让您有点精神 split ,但没有问题。 :-)
希望这可以帮助。
关于erlang - Windows 上的 Lisp flavor Erlang,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/4698591/