我有一个使用自动工具的项目。autotools的一个很好的特性是“源代码之外的”构建,而不是这样做:
cd foobar
./configure
make实际上,我为构建创建了一个文件夹,在其中我进行了配置:
cd foobar/builds/linux
../../configure
make(准确的是,我的源文件夹不会被生成的Makefile破坏,在交叉编译时会有所帮助)。
因此,当我使用emacs编写代码时,要运行编译,我将执行M-x compile,将编译命令指定为cd ~/foobar/builds/linux ; make。
这很好,直到编译错误发生。编译缓冲区将列出带有丑陋路径(如../../../../src...)的文件,该路径指向源文件,相对于构建folder.However,似乎emacs不会停留在编译结束时的build文件夹中,因此链接没有指向任何内容。因此,我无法轻松地浏览到错误。
我试着和compilation-search-path玩,没有运气。
是否有办法强迫emacs在编译文件夹中“停留”(以便编译缓冲区中的路径引用现有文件?)
谢谢
PH值
发布于 2009-11-23 14:52:28
如果您使用make -C ~/foobar/builds/linux,那么emacs应该能够跟踪发出发射的Entering directory ...、Leaving directory ...消息,并使用这些消息来保持对文件的正确引用。
发布于 2009-11-23 22:36:40
利用牙买加的建议,我可以通过以下方式部分解决这个问题:
将“-
更改为其中一个源文件夹
不太确定是否两者都需要,或者这是否是最好的方法.
不管怎样,谢谢你!
https://stackoverflow.com/questions/1783111
复制相似问题