如何调整Emacs的compile-goto-error从编译缓冲区获取的路径?

时间:2012-05-04 14:41:50

标签: emacs compilation build-system

我正在使用Emacs 23并遇到以下问题:

我在Emacs中运行我们项目的构建系统,如M-x compile - > cd / foo / bar&& ./build

构建系统现在做了一些魔术,“cd”进入构建过程的某个子目录,然后gcc抛出错误:

../ src / somesource.cc:50错误:blablabla

现在的问题是Emacs不会找到该路径,因为它假定编译过程在/ foo / bar中开始,而不是在/ foo / bar / builddir中。所以领先的“../”对Emacs不起作用,例如:运行compile-goto-error时。有没有办法告诉Emacs尝试跳过引导“../"?

1 个答案:

答案 0 :(得分:13)

最佳解决方案可能是更改构建系统以在更改目录时发出消息。 Emacs寻找

Entering directory `...'
... 
Leaving directory `...'

(请参阅compilation-directory-matcher变量。如果您的构建系统在更改目录时确实会发出消息,但它们不是Emacs正在寻找的格式,则可以向compilation-directory-matcher添加新的正则表达式。 )

另一个解决方案是更改compilation-search-path(这是一个目录列表)。