在用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?如果不是的话,任何不需要我每次编译都要输入讨厌路径的干燥建议。
发布于 2010-12-05 03:36:41
我很少从shell编译,只用于使用c(foo)的小型测试脚本。我的设计是:
我有一个基础设施建设。make构建软件(make只是rebar的包装器)。然后,我可以通过点击绑定到emacs emacs命令的F12来构建compile内部的代码。在vim中,如果我的vim内存满足我的需要,您也可以使用:make命令(这已经有几年了)。现在,这当然会构建代码并将其抛到ebin dir中。
下一步是使用有关ebin dir的知识启动Erlang:
erl -pa ./ebin这意味着任何对模块foo的引用都会检查./ebin/foo.beam。当我发现必须修复一些代码时,我在编辑器中修复它,用F12编译代码,然后在热加载代码的shell中执行l(foo)。
它还具有一个优点,即任何编译错误现在都在编辑器的管辖范围内,所以我可以快速跳到错误并修复它。
发布于 2010-12-05 21:42:39
您可以设置ERL_COMPILER_OPTIONS。
请参阅http://www.erlang.org/doc/man/compile.html
https://stackoverflow.com/questions/4354587
复制相似问题