为什么通用的Erlang应用程序(通用测试,Dialyzer,leex,yecc等)在`erl`外壳中不可用?

时间:2018-11-12 06:02:59

标签: erlang erl

回到Erlang,我注意到我无法运行任何具有自己的用户指南的支持框架,例如EUnit,Common Test,leex,yecc,Dalizer,Typer等。

根据Common Test User's Guide,“ 通用测试应用程序随Erlang / OTP系统一起安装”,并且“ 不需要额外的安装步骤” 。我认为其他人也是如此,并且我肯定我缺少一些基本知识。

1 个答案:

答案 0 :(得分:1)

@aronisstav对“ 由shell的自动完成功能(基于已加载的内容)引起的误解”的评论深深打动了他。再次引用他,正确答案是:

  

所有这些工具都具有一些合适的Erlang“入口点”功能,并且   调用此函数应该可以工作(假设您没有启动   嵌入式模式下的节点/外壳)。

尝试以下方法,它们就起作用了(我想我只是个白痴):

6> leex:file("./program.erl").
./program.erl.xrl: no such file or directory
error
7> dialyzer:gui().

要使shell自动完成工作,只需在l(Module) shell中使用code:load_file/1erl来加载模块:

$ erl

1> code:load_file(ct).
{module,ct}

2> l(dialyzer).
{module,dialyzer}