2012-11-02 2 views
3

emacs에서 프로그램을 컴파일하는 가장 좋은 방법은 무엇입니까? 나는 현재 C-x 3으로 별도의 버퍼를 열었고 M-x eshell을 사용하여 eshell을 실행 한 다음 make 또는 clang을 직접 호출합니다. 대부분의 경우 Makefile 설정이되어 있습니다.Emacs에서 프로그램 컴파일하기?

M-x compile을 사용하여 컴파일 프로세스를 실행하면 어떤 이점이 있습니까? make inside eshell을 실행하고 있습니까? 그 밖의 다른 방법과 그 이점/단점은 무엇입니까?

+0

eshell에 익숙하지 않지만 C-x' – carlosdc

+0

을 지원하지 않을 것이라고 확신합니다. @carlosdc eshell은 lisp로 작성된 emacs 내부에 내장 된 UNIX 쉘입니다. 그것은 표준 유닉스 쉘처럼 동작하지만 emacs 내에서 동작합니다. 방금 emacs 내의 별도의 버퍼에서 엽니 다. – haziz

+0

예, 많은 이맥스 기능을 놓치고있는 것처럼 보입니다. 윌의 대답은 M-x의 기능을 잘 설명합니다. – carlosdc

답변

9

가장 쉬운 방법은 Emacs 내장 compile 명령을 사용하는 것입니다. M-x compile 당신을 잘해야합니다. 그런 다음 실행될 명령 (기본값 : make -k)을 편집 한 다음 return 키를 눌러 컴파일을 실행할 수 있습니다. Emacs는 출력을 분석하고 오류를 발견하면 소스 파일에 링크하여 버퍼에서 열 수 있습니다.

그것에 대해 긍정적 인 : 출력 버퍼

  • 컴파일 출력이 선택되지 않은 버퍼에 표시됩니다
  • 호출 사이의 컴파일 명령의
  • 암기의

    • 구문 분석, 신속하게 파일을 편집 할 수 있습니다 당신은 바보 같은 오류를 고치고 고쳤습니다.
    • M-n오류 메시지

    이러한 기능의 대부분을하여 M-p 스크롤은 compilation-minor-mode 사소한 모드에서 제공하지 실제 컴파일 명령과 버퍼하지만. eshell에서 컴파일 명령을 실행하면 부 모드를 compilation-minor-mode으로 설정하여 비슷한 결과를 얻을 수 있습니다.

  • +2

    +1. 나는'C-x backquote'와'TAB' 반사를 느낄 수 있습니다 ... – ldav1s

    2

    나는 개인적으로 make을 실행하는 것을 선호하거나 다음과 같은 이유로 multi-term 내에서 컴파일 에 사용하는 명령대로 : 당신이 을 활성화하면 MXcompileRET

    • 처럼 작동 compilation-shell-minor-mode (Mp, C-`, ...).

    • 하지만 당신은 분명히 당신이 이맥스에서이 작업을 수행 할 수 있습니다 물론

      mkdir build 
      cd build 
      ./configure --with-another-option 
      

      같은 다른 명령을 사용할 수 있습니다하지만 난 이런 종류의 물건에 대한 쉘 상호 작용을 선호합니다.

    그리고 IMO, 의 주요 단점 MXcompile는 경우보다 다른 디렉토리에있는 파일을 편집하고 있다는 당신의 Makefile 당신은 올바른 디렉토리에 MXcompile을 사용해야합니다 Mxrecompile입니다.그러나 원하는 경우 make clean && make라고 말한 다음 올바른 디렉토리로 전환해야하며 다시 전환해야합니다.

    그러나 term.el에는 고유 한 단점이 있으며, 이식 할 수없는 해킹 방법 인 을 사용하여 현재 디렉토리를 추적합니다.

    관련 문제