2012-05-04 1 views
11

Ich bin mit 23 Emacs und habe folgendes Problem:Wie wird der Pfad angepasst, den Emacs 'Compile-Goto-Error vom Compiler erhält?

ich unser Projekt Build-System aus Emacs laufen wie Mx Kompilierung -> cd/foo/bar & & ./Build

Das Build-System jetzt tut einige Magie, „cd“ s in ein Unterverzeichnis für den Prozess zu bauen und dann gcc wirft einen Fehler:

../src/somesource.cc:50 Fehler: blablabla

das Problem ist jetzt, dass Emacs gewonnen‘ t finde diesen Pfad, weil er den Kompilierprozess s annimmt in/foo/bar ausgebootet und nicht in/foo/bar/builddir. So funktioniert das führende "../" nicht für Emacs, z.B. wenn compile-goto-error ausgeführt wird. Gibt es eine Möglichkeit, Emacs mitzuteilen, dass er versucht, "../" zu überspringen?

+1

Seltsamerweise stoße ich darauf, wenn ich * Emacs * ... – SamB

Antwort

11

Die beste Lösung könnte darin bestehen, das Build-System so zu ändern, dass beim Wechseln von Verzeichnissen Nachrichten ausgegeben werden. Emacs suchen

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

(Siehe compilation-directory-matcher Variable. Wenn Ihr Build-System-Nachrichten aussendet, wenn es Verzeichnisse ändert, aber sie sind nicht in dem Format Emacs sucht, können Sie neuen regexps zu compilation-directory-matcher hinzufügen.)

Die andere Lösung ist es, compilation-search-path (das ist eine Liste von Verzeichnissen) zu ändern.

+0

Ich wusste nicht über die "Entering ..." Funktionalität von Emacs. Das wird wahrscheinlich helfen! – Arne

+1

@Arne, GNU Make [druckt Nachrichten in dieser Form] (http://www.gnu.org/software/make/manual/html_node/_002dw-Option.html) wenn rekursive Makefiles verwendet werden. Deshalb sucht Emacs nach ihnen. – cjm

+1

Diese Lösung scheint zu sein, was ich suche, aber ich kann 'compilation-directory-matcher' Variable nicht bearbeiten (wie Sie hier sehen können: http://stackoverflow.com/q/21309720/61838). Außerdem scheint der 'compilation-search-path' das Problem nicht zu lösen (selbst wenn ich nur emacs brauche, um nach Quellen in einem Verzeichnis zu suchen). Jede Hilfe wäre willkommen! – claf

Verwandte Themen