내 이맥스 버전은 24.3.1입니다.
나는 이맥스가 읽을 수있는 경로에 ob-C.el ( 여기 에서 사용 가능)을 넣어야한다는 것을 이해 합니다.
먼저 해당 .el 파일에서 내 .emacs 파일로 코드를 복사하여 붙여 넣은 다음 emacs를 다시 시작했습니다. 그런 다음 C 코드 블록 (org 파일 내)으로 가서 Cc Cc를 사용하여 실행하려고했습니다. 미니 버퍼는 'C에 대한 org-babel-execute 기능이 없다'고 말했다. 같은 이야기는 C ++ 코드 블록을 실행하려고 시도했을 때 발생했습니다. R과 python은 내 조직 파일 내에서 완벽하게 평가됩니다. 컴파일 된 언어에만 문제가있는 것 같습니다.
그런 다음이 ob-C.el을 ~ / .emacs.d 디렉토리에 넣어서 그것이 도움이되는지 확인했습니다. emacs를 다시 시작하고 확인했습니다. 작동하지 않았다.
그런 다음 ~ / .emacs.d / lisp 디렉토리에 넣고 내 .emacs 파일에 다음 줄을 추가했습니다.
(add-to-list 'load-path "~/.emacs.d/lisp/")
(load "ob-C.el")
(require 'ob-C)
emacs를 다시 시작한 후에는 org 파일 내에서 C 또는 C ++ 코드 블록을 평가해도 여전히 작동하지 않습니다. "C의 경우 org-babel-execute 기능 없음"또는 "C ++의 경우 org-babel-execute 기능 없음"과 동일한 오류가 계속 발생합니다.
최신 정보
emacs 버전을 24.5로 업그레이드하고 ~ / .emacs.d 디렉토리에서 이전의 elpa 및 melpa 하위 디렉토리를 모두 삭제했습니다. 그것이 내가 배치 한 순서와 관련이 있다고 의심
(custom-set-variables
'(org-babel-load-languages
(quote
((emacs-lisp . t)
(C . t)
(css . t)
(sh . t)
(awk . t)
(R . t))))
과
;; load the pathnames to custom lisp files
(add-to-list 'load-path "~/.emacs.d/lisp/")
(load "ob-C.el")
(require 'ob-C)
코드 블록, 난 org-babel-load-languages 일 전에 "ob-C.el"로드를 넣습니다. 그런 다음 C ++ 코드 블록을 여러 번 실행했습니다. 불운.
그런 다음 모든 것을 제거하고 (.emacs 파일의 custom-set-variables 블록을 정리했습니다) 이제 .emacs 파일은 다음과 같습니다.
;; load the pathnames to custom lisp files
(add-to-list 'load-path "~/.emacs.d/lisp/")
(load "ob-C.el")
(require 'ob-C)
;; load the languages that are needed
(org-babel-do-load-languages
'org-babel-load-languages '((C . t)))
여전히 작동하지 않습니다.
orgmode 버퍼에서 평가하려고하는 코드는 다음과 같습니다.
#+BEGIN_SRC c
printf("Hello world");
#+END_SRC
내 메시지 버퍼는 emacs를 다시 시작하고 위의 코드 블록을 실행하려고 시도한 후 다음과 같습니다.
Loading /home/taeten/.emacs.d/lisp/ob-C.el (source)...done
Wrote /home/taeten/.emacs.d/.emacs.desktop.lock
Desktop: 1 frame, 0 buffers restored.
For information about GNU Emacs and the GNU system, type C-h C-a.
Quit [2 times]
Making completion list... [3 times]
org-babel-execute-src-block: No org-babel-execute function for c! [5
times]
Ignoring unknown mode `elisp-mode'
File local-variables error: (void-function elisp-mode)
byte-code: Beginning of buffer [6 times]
byte-code: Beginning of buffer
load
andrequire
비트 가 필요하지 않습니다 .require
(파일provide
에이 문장이있는 경우)을로드하지만 ,에require
의해 처리되기 때문에 필요하지 않습니다 . 또한, 나는 그렇지 않다고 생각합니다 .org-babel-do-load-languages
org
C
c