Eric Schulte <eric.schu...@gmx.com> writes: > Applied, Thanks! > > Daimrod <daim...@gmail.com> writes: > >> Hi, >> >> I've made a small patch to ob-C.el so it now includes the current >> directory to the list of directories to be searched for header files. >> Without this, I cannot include a local header file because the >> compilation happens in /tmp and thus gcc or g++ doesn't search for >> header files in the directory I currently work. >> >> diff --git a/lisp/ob-C.el b/lisp/ob-C.el >> index f1525aa..4f33fc4 100644 >> --- a/lisp/ob-C.el >> +++ b/lisp/ob-C.el >> @@ -96,15 +96,14 @@ or `org-babel-execute:C++'." >> (progn >> (with-temp-file tmp-src-file (insert full-body)) >> (org-babel-eval >> - (format "%s -o %s %s %s -I \"%s\"" >> + (format "%s -o %s %s %s" >> (cond >> ((equal org-babel-c-variant 'c) org-babel-C-compiler) >> ((equal org-babel-c-variant 'cpp) org-babel-C++-compiler)) >> (org-babel-process-file-name tmp-bin-file) >> (mapconcat 'identity >> (if (listp flags) flags (list flags)) " ") >> - (org-babel-process-file-name tmp-src-file) >> - (file-name-directory (expand-file-name >> (buffer-file-name)))) "")))) >> + (org-babel-process-file-name tmp-src-file)) "")))) >> ((lambda (results) >> (org-babel-reassemble-table >> (if (member "vector" (cdr (assoc :result-params params)))
Hum, I'm quite embarrassed, this doesn't work when the block is executed during an export. I didn't track it down yet, but (buffer-file-name) returns nil during the export probably because the buffer changes. A workaround would be to use the :flags header argument though it's a bit tedious because it doesn't seem possible to eval elisp during the export. i.e. #+BEGIN_SRC cpp :flags -I (file-name-directory (buffer-file-name)) ... #+END_SRC