makefile / shell 스크립트 호출을 /Applications/application.app로 만들려면 어떻게해야합니까?


4

OS Mac OS X 10.6.6 이맥스 23.2.1

현재 제안 된 make 솔루션을 사용하여 carbon emacs에 magit을 설치하려고합니다. 나는 거의 완전한 makefile을 새로 만들었으므로 완전히 잘못된 길을 가고있을 수 있습니다. 메이크 파일 표시 :

%.elc: %.el
$(BATCH) --eval '(byte-compile-file "$<")'

다음으로 확장됩니다.

emacs -batch -q -no-site-file -eval "(setq load-path (cons (expand-file-name \".\") load-path))" --eval '(byte-compile-file "magit.el")'

내가 이해하는 것. 그러나 다음과 같이 돌아옵니다.

Cannot open load file: subst-ksc

약간의 인터넷 검색 후 누락 된 라이브러리가 드러납니다. 또한 확장 명령에서 참조 된 emacs /usr/bin/emacs가 하나의 큰 파일을 가리키고 있음을 깨달았습니다 . 일반적인 lisp / site-lisp / etc 디렉토리는 보이지 않습니다. 또한 선호하는 emacs는 탄소 emacs /Application/Emacs.app이며, 클릭하면 열리거나 터미널로 열 수 있습니다.

open /Application/MyApp.app

마지막으로 제목 질문 : 어떻게 응용 프로그램 디렉토리에서 Emacs.app를 사용하여 Makefile을 만들 수 있습니까? 여기 누군가가 답을 알고 있거나 대안을 제시 할 수 있기를 바랍니다.

감사합니다.


나는 이것이 StackExchange.com에 속한다고 생각한다

site-lisp의 위치 :/usr/share/emacs/site-lisp

답변:


5

쉘에서 Emacs.app를 사용하려면 유닉스 실행 파일이 포함되어 있어야합니다. 그것은 Emacs.app/Contents/MacOS/Emacs에 있습니다 (이 버전의 emacs가 없으므로 대문자가 다를 수 있습니다)

다른 방법은 open을 사용하여 작업 공간에서 open을 사용하여 모든 앱을 시작하는 것입니다.

예 :

open -a Emacs.app --args <all those passed to emacs>

1
답변 주셔서 감사합니다! 첫 번째 옵션은 고마워했습니다 (대소 문자도 문제가 없었습니다!). 두 번째 옵션을 사용할 수 없었습니다. open -a는 실제로 emacs를 포 그라운드로 가져옵니다 (이미 열려 있음). 배치 / 평가 옵션 / 속성은 무시되는 것 같습니다 : open -a /Applications/Emacs22.app --args -batch -q -no-site-file -eval "(setq load-path (cons (expand-file-name \ ". \") load-path)) "--eval '(byte-compile-file"magit.el ")'
dr jerry

처음부터 호출하면 (emacs 닫힘) 오류 메시지가 표시됩니다. LSApplicationURLEWithRole ()이 응용 프로그램 /Applications/Emacs.app에 대해 오류 -10810으로 실패했습니다.
jerry jerry

3

내가 한 것처럼 Google을 통해 다른 사람이 문제를 겪을 경우 이전 질문에 대답하고 있습니다.

Mark가 지적했듯이 Emacs.app 실행 파일을 사용하여 파일을 바이트 컴파일 하려면 Makefile에서 emacs또는 로 바꿔야 합니다. 나는 일반적으로 바이트 컴파일 된 파일이 다른 버전의 Emacs와 호환되지 않는다고 생각하므로 Emacs.app와 함께 사용할 패키지를 설치할 때 기본 Apple이 설치하지 않은이 실행 파일을 사용하여 바이트 컴파일해야합니다 ( 내 10.6 시스템의 버전 ​​22 이맥스)./usr/bin/emacs/Applications/Emacs.app/Contents/MacOS/Emacs/usr/bin/emacs

/usr/bin/emacs다른 이유로 실행해야하는 경우 EMACSLOADPATH최신 Emacs에 속하는 파일이 포함되지 않도록 주의하십시오 . 이것은 다음과 같은 오류 메시지의 잠재적 원인 중 하나입니다.

Cannot open load file: subst-ksc

쉘에서 emacs 호출

EMACSLOADPATH=/usr/share/emacs/22.1/leim:/usr/share/emacs/22.1/lisp:/usr/share/emacs/22.1/site-lisp emacs

트릭을해야합니다.

이것이 다른 누군가를 돕기를 바랍니다!

당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.