我可以在erl命令中添加include目录吗?

时间:2010-12-04 16:45:58

标签: erlang erlang-shell

使用erlc编译erlang文件时,我可以添加其他包含目录,如下所示:

erlc -I /home/trotter/code/open-source/yaws/include src/myapp.erl

当我在erl内编译时,我没有看到在命令行上执行此操作的方法。相反,我必须在repl中执行以下操作:

> compile:file("src/myapp", 
               [verbose,
                report_errors,
                {i,"/home/trotter/code/open-source/yaws/include"}]).

有没有更好的方法来做我不知道的事情,例如将一些命令行参数传递给erl?如果没有,任何干扰的建议都要求我在每次编译时输入令人讨厌的路径。

2 个答案:

答案 0 :(得分:5)

我很少从shell编译 - 仅适用于c(foo)的小型测试脚本。我的设置是:

我有一个构建基础架构。 make构建软件(make只是rebar的包装器)。然后,我可以通过点击绑定到emacs emacs命令的F12来在compile内构建代码。在vim中,如果我的vim内存为我服务(已经过了几年),你可以使用:make命令执行相同操作。现在,这当然会构建代码并将其放入ebin目录。

下一步是启动Erlang,了解ebin目录:

 erl -pa ./ebin

表示对模块foo的任何引用都会检查./ebin/foo.beam。当我弄清楚我必须修复一些代码时,我在编辑器中修复它,用F12编译代码然后在shell中执行l(foo)来加载代码。

它还有一个优点,任何编译错误现在都在编辑器的管辖范围内,因此我可以快速跳转到错误并修复它。

答案 1 :(得分:2)

您可以设置ERL_COMPILER_OPTIONS

请参阅http://www.erlang.org/doc/man/compile.html