Erlang 我可以将include目录添加到erl命令吗?

Erlang 我可以将include目录添加到erl命令吗?,erlang,erlang-shell,Erlang,Erlang Shell,使用erlc编译erlang文件时,我可以添加其他include目录,如下所示: erlc -I /home/trotter/code/open-source/yaws/include src/myapp.erl 但是,当我从erl内部编译时,我看不到在命令行上执行此操作的方法。相反,我必须在repl中执行以下操作: > compile:file("src/myapp", [verbose, report_errors,

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

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?如果不是的话,有没有什么建议可以让我在每次编译时都不需要键入讨厌的路径来解决这个问题。

我很少从shell编译-只针对使用
c(foo)
的小测试脚本。我的设置如下:

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

下一步是使用有关
ebin
dir的知识启动Erlang:

 erl -pa ./ebin
这意味着对模块
foo
的任何引用都会去检查
/ebin/foo.beam
。当我发现我必须修复一些代码时,我在编辑器中修复它,用
F12
编译代码,然后在热加载代码的shell中执行
l(foo)


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

您可以设置
ERL\u编译器选项


请参见

这样做会不会:ERL_COMPILER_OPTIONS='[{i,“/home/trotter/code/open-source/yaws/include”}]'ERL?好的,这是解决我问题的一个更好的方法。我不知道我可以使用l(foo)来热加载编译的代码。为了使事情更简单,我在项目根目录中创建了一个.erlang文件,其中包含
code:add_patha(“./dict”)。
。每次我在该项目上运行
erl
时,它都会将“dict”路径添加到路径搜索列表的开头。