1

我开始在一些现有的 erlang 项目上使用 emacs。我想使用命令 erlang-compile,如果可能的话使用快捷方式C-c C-k,但它失败了,因为我的大多数项目使用一些 .hrl 文件,位于包含目录中,而命令只知道 src 和 ebin 目录(它是 erlang 应用程序的常用目录树)

我通过编辑所有包含指令并在每个文件名之前添加包含目录的相对路径找到了一种解决方法,但我不喜欢这样,如果我想使用选项 debug_info、export_all、本国的...

另一种解决方法是使用外部命令,但在这种情况下,我会松动——我猜——编译错误和源代码之间的链接。

正确的方法应该是将选项列表传递给命令(例如[{i,"../include"},debug_info])。

我曾尝试使用“评估”命令,M-: (erlang-compile XXX)但它失败了(我不知道一点 lisp 语法,无论如何,似乎 erlang-compile 没有参数......)

我看过这个主题在 emacs 中使用钢筋?但是,据我了解该解决方案,它将使用外部命令,并且其行为类似于我的第二个解决方法。

是否有其他方法或设置来传递这些参数?

4

2 回答 2

1

这不是您要查找的内容,但我建议您使用EDTS。它包含很少有用的功能,可以在.edts配置文件中设置包含目录,并且它会尝试在每个文件保存时编译您的代码。

只是一个想法。我会尝试使用Emakefile界面。它似乎足够标准,并且 emacs/erlang 集成可以使用它。

于 2014-09-23T23:05:10.503 回答
0

您可以在erlang-compile-extra-opts变量中设置包含路径。例如:

(setq erlang-compile-extra-opts '((i . "../include") debug_info))
于 2014-09-24T13:06:44.660 回答