2012-05-04 6 views
11

estoy usando Emacs 23 y el siguiente problema:¿Cómo se ajusta la ruta que obtiene el compilador-error de Emacs desde el búfer de compilación?

corro nuestro sistema de construcción de proyecto dentro de Emacs como Mx compile -> cd/foo/bar & & ./build

El sistema de construcción hace ahora un poco de magia, "CD" s en algún subdirectorio para el proceso de construcción y luego gcc genera un error:

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

Ahora el problema es que Emacs ganó' t encuentra esa ruta, porque asume el proceso de compilación tarted en/foo/bar, y no en/foo/bar/builddir. Entonces, el "../" principal no funciona para Emacs, p. cuando se ejecuta compile-goto-error. ¿Hay alguna manera de decirle a Emacs que intente omitir el "../" principal?

+1

Curiosamente, me estoy encontrando con esto al construir * Emacs * ... – SamB

Respuesta

11

La mejor solución podría ser cambiar el sistema de compilación para que emita mensajes cuando cambie de directorio. Emacs busca

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

(Ver la variable compilation-directory-matcher. Si su sistema de construcción hace emitir mensajes cuando cambia directorios, pero no están en el formato de Emacs está buscando, puede agregar nuevas expresiones regulares a compilation-directory-matcher).

La otra solución es cambiar compilation-search-path (que es una lista de directorios).

+0

No sabía acerca de la funcionalidad "Entering ..." de Emacs. ¡Eso probablemente ayude! – Arne

+1

@Arne, GNU Make [imprime mensajes en ese formulario] (http://www.gnu.org/software/make/manual/html_node/_002dw-Option.html) cuando se utilizan archivos make recursivos. Es por eso que Emacs los busca. – cjm

+1

Esta solución parece ser lo que estoy buscando, pero no puedo editar la variable 'compilation-directory-matcher' (como puede ver aquí: http://stackoverflow.com/q/21309720/61838). Además, el 'compilation-search-path' no parece resolver el problema (incluso cuando solo necesito emacs para buscar fuentes en un directorio). ¡Cualquier ayuda sería apreciada! – claf

Cuestiones relacionadas