Nice. Very interesting and informative. Thanks, Eric. -- Mike
----- Original Message ----- > From: Eric Schulte <schulte.e...@gmail.com> > To: Michael Hannon <jm_han...@yahoo.com> > Cc: Org-Mode List <emacs-orgmode@gnu.org> > Sent: Friday, November 18, 2011 11:39 AM > Subject: Re: [O] Details of compling and running C++ code from Org-mode? > > Hi Michael, > > Michael Hannon <jm_han...@yahoo.com> writes: > >> Greetings. I'm curious about the process of executing a program that > is >> compiled from a source block in Org-mode. >> >> Some background: I was playing with some C++ code (a slight generalization > of >> some code I found in a book). I wanted to use the "assign" > method to >> initialize a vector, as: >> >> vector<int> testVec(5, 0); >> testVec.assign({2, 4, 6, 8, 10}); >> >> It turns out that to do this one has to tell g++ (in my case) to use the >> latest version of the C++ standard. I discovered that I could do this via: >> >> (setq org-babel-C++-compiler "g++ -std=c++0x") >> > > You could also use the :flags header argument (:flags "-std=c++0x") to > pass this flag to g++. > >> >> This got me to wondering if there were any similar hooks that relate to >> running the program once it's compiled. I looked through the list of >> org-babel* variables, but didn't find anything obvious. >> >> So what does happen when I hit C-c C-c in, say, a cpp source-code block? > The >> contents of the file are evidently written to a temporary file, after which >> the command specified by org-babel-C++-compiler is run on that file. The >> results of the compilation are stuck some place -- another temporary file, > I >> suppose. Then the second, executable file is run and the results >> collected. > > Thanks for asking this question, and sorry it took so long to respond. > I've placed an annotated copy of the relevant code up at [1] which > should explain the evaluation process for c/c++ code. In many cases > browsing the relevant org-babel-execute:* function for your language is > the best way to discover what flags are available. > >> >> What command runs the file? > > The file itself is called directly. > >> Is there any control from Org-mode over this second stage of the >> process? > > Yes, the :cmdline header argument may be used to pass values to the > executing file. > > Best -- Eric > >> >> Thanks, >> >> -- Mike >> > > > Footnotes: > [1] http://cs.unm.edu/~eschulte/data/babel-c-execution.html > http://cs.unm.edu/~eschulte/data/babel-c-execution.org > > -- > Eric Schulte > http://cs.unm.edu/~eschulte/ >