首页 文章

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

提问于
浏览
1

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

我通过编辑所有include指令找到了一个解决方法,并在每个文件名之前添加了include目录的相对路径,但是我不喜欢这个,如果我想使用选项debug_info,export_all进行编译,它就无济于事 . 原生...

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

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

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

我已经看过这个话题Use rebar in emacs?但是,据我了解解决方案,它将使用外部命令,它将表现得像我的第二个解决方法 .

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

2 回答

  • 1

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

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

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

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

相关问题