使用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?如果没有,任何干扰不的建议都要求我在每次编译时输入令人讨厌的路径。
答案 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
。