如何强制emacs的erlang compile命令在include目录中搜索

如何强制emacs的erlang compile命令在include目录中搜索,emacs,erlang,compiler-options,Emacs,Erlang,Compiler Options,我开始在一些现有的erlang项目上与emacs合作。我想使用命令erlang compile,如果可能的话,可以使用捷径C-C-k,但是它失败了,因为我的大多数项目使用一些位于include目录中的.hrl文件,而命令只知道src和ebin目录(这是erlang应用程序的常用目录树) 我找到了一个解决方法,编辑所有的include指令,并在每个文件名之前添加include目录的相对路径,但我不喜欢这样,如果我想使用debug\u info、export\u all、native等选项进行编译,

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

我找到了一个解决方法,编辑所有的include指令,并在每个文件名之前添加include目录的相对路径,但我不喜欢这样,如果我想使用debug\u info、export\u all、native等选项进行编译,这也没有帮助

另一种解决方法是使用外部命令,但在这种情况下,我想我会失去编译错误和源代码之间的联系

正确的方法应该是将选项列表传递给命令(例如
[{i,../include”},debug\u info]

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

我已经看过这个主题,但是,就我所理解的解决方案而言,它将使用一个外部命令,它的行为将类似于我的第二个解决方法


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

这不是您想要的,但我建议使用。它包含了很多有用的功能,包括可以在
.edts
config文件中设置的目录,并且它尝试在每次保存文件时编译代码


只是一个想法。我会尝试使用界面。它似乎已经足够标准,emacs/erlang integration可以使用它。

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

(setq erlang-compile-extra-opts '((i . "../include") debug_info))

EDTS似乎很有趣,因为它可以解决比我目前看到的问题更多的问题(特别是传递给项目节点的参数)。我将在接下来的几天里看一看。这完全符合我的问题,但我也会考虑MPM建议。