2009-11-23 23 views
1

我有一个项目,使用autotools。自动工具的一个很好的功能是“乱源”构建,wheras而不是做:修复源代码文件搜索路径,当在源代码自动工具内建立emacs

cd foobar 
./configure 
make 

我真正创建一个文件夹建立,在我做的配置:

cd foobar/builds/linux 
../../configure 
make 

(好的是,我的源文件夹不会与生成的Makefiles瘫痪,并且在交叉编译时会有所帮助)。

因此,当我在emacs中编写代码时,要运行编译,我将执行M-x compile,将编译命令指定为cd ~/foobar/builds/linux ; make

这工作正常,直到发生编译错误。编译缓冲区将列出具有丑陋路径的文件(如../../../../src...),该文件指向源文件,相对于构建文件夹。但是,看起来emacs在编译结束时不会保留在build文件夹中,所以链接不指向任何东西。因此,我不能轻松浏览回错误。

我试过玩compilation-search-path,没有运气。

有没有办法在编译文件夹逼Emacs在“留”(这样在编译缓冲参考现有文件的路径?)

感谢

PH

回答

3

如果如果您使用make -C ~/foobar/builds/linux,emacs应能够跟踪发出的Entering directory ...Leaving directory ...消息并使用它来保持对文件的正确引用。

+0

谢谢,但它似乎没有帮助..我应该补充说我有几个源文件夹,并且我在顶层运行make。 例如: *我建立在/ home/phtrivier/PRJ/foobar的/构建/ LINUX /电流 *我从/家/ phtrivier/PRJ/foobar的/ src目录文件的错误/客户端 在编译缓冲区,'make -C〜/ foobar/builds/linux/current check'我得到错误: make [2]:entrant dans lerépertoire«/ home/phtrivier/prj/foobar/builds/linux/current/src/client ...(编译行跳过) ../../../../../src/client/whatever.cpp 但是当点击该行时,找不到: ( – phtrivier 2009-11-23 22:17:52

1

使用jamessan的意见,我可以部分地通过解决这个问题:

  • 设置“汇编目录是一个 '源' 文件夹(建立/ LINUX /电流/ src目录/客户端)
  • settting“编译命令使用-C

不是很确定,如果两者都需要,或者如果它是做事情的最好方法......

钍改变这些源文件夹中的一个反正!