From: Richard Stanton <stanton@haas.berkeley.edu>
To: Eric Schulte <eric.schulte@gmx.com>
Cc: "emacs-orgmode@gnu.org" <emacs-orgmode@gnu.org>
Subject: Re: Problems running C code in org-mode under Windows
Date: Tue, 27 Mar 2012 13:43:16 -0700 [thread overview]
Message-ID: <40C7B1BFC291ED4E9D10436D07736A334702EB988A@EXMAIL7.haas.uc.berkeley.edu> (raw)
In-Reply-To: <87r4wec9lg.fsf@gmx.com>
I think the "Access is denied" problem is probably the same as that listed here:
http://lists.gnu.org/archive/html/help-gnu-emacs/2010-04/msg00247.html
Unfortunately, when I switch to using bash as my shell under Windows, this causes problems with python-mode (though this is not really your problem...) This change does get the compilation to work on my machine, however, and a .exe file is created. So far so good...
However, the output still appears blank in the org buffer. More tracing required...
> -----Original Message-----
> From: Eric Schulte [mailto:eric.schulte@gmx.com]
> Sent: Tuesday, March 27, 2012 9:06 AM
> To: Richard Stanton
> Cc: emacs-orgmode@gnu.org
> Subject: Re: [O] Problems running C code in org-mode under Windows
>
> Thanks for tracking down the source of this problem. Unfortunately this is
> beyond my abilities to address. It would be interesting to hear if others on
> this list are having issues compiling C code blocks on windows. To the extent
> that this appears to be a problem with the Emacs `call-process' and the
> cmdproxy executable maybe a bug report to Emacs would be appropriate.
>
> Best,
>
> Richard Stanton <stanton@haas.berkeley.edu> writes:
>
> > I've been tracing through, and a problem occurs when the compilation
> > gets run, which is at about line 155 in file ob-eval.el, inside
> > function org-babel-shell-command-on-region, where call-process region
> > is called.
> >
> > As far as I can see, at this point the command being called is
> >
> > C:/emacs/emacs-24.0.94/bin/cmdproxy -c "gcc -o \"c:/users/stanton[...]C-
> bin-10700opx\" \"c:/users/Stanton[...]C-src-10700bfr.c\""
> >
> > (where [...] just means I deleted some more path information, but it's all
> valid).
> >
> > If I execute this exact command at the command line, the compilation
> > works fine, and creates an executable file C-bin-10700opx.exe (note
> > that gcc on Windows automatically adds the .exe extension if you omit
> > it). However, after running the call-process-region command in the .el
> > file, no executable file is produced, and error-file has the contents
> >
> > Access is denied
> >
> > Not sure why this should be, but the compilation is not happening.
> >
> >
> >
> >
> >
> >> -----Original Message-----
> >> From: Eric Schulte [mailto:eric.schulte@gmx.com]
> >> Sent: Monday, March 26, 2012 6:45 PM
> >> To: Richard Stanton
> >> Cc: emacs-orgmode@gnu.org
> >> Subject: Re: [O] Problems running C code in org-mode under Windows
> >>
> >> Richard Stanton <stanton@haas.berkeley.edu> writes:
> >>
> >> > Here's a simple org file that's supposed to run some C code and
> >> > print the
> >> result:
> >> >
> >> > ----------------------
> >> >
> >> > * Sample C code
> >> >
> >> > #+name: RHS.c
> >> > #+begin_src C :noweb yes :tangle RHS.c
> >> > #include <stdio.h>
> >> > <<main>>
> >> > #+end_src
> >> >
> >> > #+name: main
> >> > #+begin_src C
> >> > int main(int argc, char *argv[]) {
> >> > int lst[argc-1];
> >> > int i;
> >> > for(i=1;i<argc;i++)
> >> > lst[i-1] = atoi(argv[i]);
> >> > for(i=1;i<argc;i++)
> >> > printf("%d ", lst[i-1] + 1);
> >> > printf("\n");
> >> > }
> >> > #+end_src
> >> >
> >> > #+call: RHS.c[:cmdline 8 7 6]()
> >> >
> >> > -------------------------
> >> >
> >> > It works fine on my Mac, producing the result:
> >> >
> >> > #+RESULTS: RHS.c[:cmdline 8 7 6]()
> >> > : 9 8 7
> >> >
> >> > On my PC, however, running Windows Vista, the output is blank and
> >> > there's a *Org-babel-error-output* buffer containing the message
> >> >
> >> > Access is denied.
> >> > 'c:/Users/stanton/AppData/Local/Temp/babel-11948MQP/C-bin-
> 11948Nln'
> >> is
> >> > not recognized as an internal or external command, operable program
> >> > or batch file.
> >> >
> >> > There is a file called C-bin-11948Nln in that directory, but it has
> >> > length 0, suggesting that something is going wrong in the
> >> > compilation process. However, I can also see potential problems
> >> > with the fact that the file name does not end in .exe, so the
> >> > Windows shell is not easily going to recognize it as an executable
> anyway.
> >> >
> >> > Does anyone have this running OK under Windows? Alternatively, how
> >> > can I track down what's going wrong in more detail?
> >> >
> >> > Thanks.
> >> >
> >> > Richard Stanton
> >> >
> >>
> >> I don't have access to a windows machine so I can't debug this
> >> myself, but I would suggest stepping through the execution of the `org-
> babel-C-execute'
> >> function using edebug. This is done by first placing the cursor
> >> inside the `org- babel-C-execute' function, evaluating the function
> >> with C-u C-M-x, then executing a C code block. This should give you
> >> some idea of what is going wrong where.
> >>
> >> Best,
> >>
> >> --
> >> Eric Schulte
> >> http://cs.unm.edu/~eschulte/
>
> --
> Eric Schulte
> http://cs.unm.edu/~eschulte/
next prev parent reply other threads:[~2012-03-27 20:43 UTC|newest]
Thread overview: 7+ messages / expand[flat|nested] mbox.gz Atom feed top
2012-03-26 23:04 Problems running C code in org-mode under Windows Richard Stanton
2012-03-27 1:44 ` Eric Schulte
2012-03-27 17:25 ` Richard Stanton
2012-03-27 16:06 ` Eric Schulte
2012-03-27 20:43 ` Richard Stanton [this message]
[not found] ` <0B0951AC10878A45A228603F57EEA0CE46F5DD0CBF@EXMAIL7.haas.uc.berkeley.edu>
2012-03-28 6:00 ` Richard Stanton
2012-03-28 7:14 ` Richard Stanton
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=40C7B1BFC291ED4E9D10436D07736A334702EB988A@EXMAIL7.haas.uc.berkeley.edu \
--to=stanton@haas.berkeley.edu \
--cc=emacs-orgmode@gnu.org \
--cc=eric.schulte@gmx.com \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
Code repositories for project(s) associated with this external index
https://git.savannah.gnu.org/cgit/emacs.git
https://git.savannah.gnu.org/cgit/emacs/org-mode.git
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.