私のemacsバージョンは24.3.1です。
Emacsが読み取れるパスにob-C.el(ここから入手可能)を配置する必要があることを理解しています。
最初にその.elファイルから.emacsファイルにコードをコピーアンドペーストし、emacsを再起動しました。次に、(組織ファイル内の)Cコードブロックに移動し、(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
としませんrequire
。require
読み込みを行います(ファイルにprovide
ステートメントがある場合、この場合はあります)が、require
これはによって処理されるため、必要もありません。その前に、org-babel-do-load-languages
必ず必要とする必要org
があります。また、私はそうでC
はないと思います、あなたはそれc
を試しましたか?