2012-05-04 6 views
11

내가 이맥스 (23)를 사용하여 다음과 같은 문제가 있어요 :Emacs의 컴파일 - 고토 오류가 컴파일 버퍼에서 가져 오는 경로를 조정하는 방법은 무엇입니까?

내가 MX 컴파일처럼 이맥스 내에서 우리의 프로젝트의 빌드 시스템을 실행을 -> CD/foo는/바 & &는 빌드 시스템이 현재 수행

을 ./build

../src/somesource.cc:50 오류 : 마법, "CD"빌드 프로세스에 대한 몇 가지 하위 디렉토리로의 다음 GCC는 오류가 발생합니다 blablabla

이제 문제는 이맥스 '원이다 그 경로를 찾는다. 왜냐하면 컴파일 과정을 가정하기 때문이다./foo/bar에서 tarted되고/foo/bar/builddir에서는 그렇지 않습니다. 그래서 선도적 인 "../"는 Emacs에서 작동하지 않습니다. 컴파일 - 고토 오류를 실행할 때. 이맥스에게 "../"의 선두를 건너 뛰도록 시도하는 방법이 있습니까?

+1

이상하게도 Emacs를 만들 때 나는 이걸 실행하고있다. ... – SamB

답변

11

최상의 해결책은 디렉토리를 변경할 때 메시지를 내보내도록 빌드 시스템을 변경하는 것입니다. (빌드 시스템이이 디렉토리를 변경할 때 메시지를 방출 않는 경우. compilation-directory-matcher 변수를 참조하지만, 이맥스 당신이 compilation-directory-matcher 새로운 regexps '에 추가 할 수 있습니다, 찾고있는 형식으로 아니에요.) 이맥스

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

을 찾습니다

다른 해결책은 compilation-search-path (디렉토리 목록입니다)을 변경하는 것입니다.

+0

Emacs의 "Entering ..."기능에 대해 몰랐다. 아마도 도움이 될 것입니다! – Arne

+1

@Arne, GNU 재귀 makefile을 사용할 때 [해당 형식으로 메시지를 인쇄하십시오.] (http://www.gnu.org/software/make/manual/html_node/_002dw-Option.html). 그것이 이맥스가 그들을 찾는 이유입니다. – cjm

+1

이 솔루션은 내가 찾고있는 것으로 보이지만'compilation-directory-matcher' 변수를 편집 할 수 없습니다 (http://stackoverflow.com/q/21309720/61838에서 볼 수 있듯이). 더욱이,'compilation-search-path'는 문제를 해결하지 못하는 것 같습니다 (심지어 한 디렉토리에서 소스를 찾는 데 이맥스 만 필요할 때조차도). 어떤 도움을 주시면 감사하겠습니다! – claf