Did none of you notice the Makefile in that directory?

On Tue, 8 Feb 2005, Huntsinger, Reid wrote:

Rtest.o is just an object file, and the second call to gcc is really a call
to ld and creates Rtest.so, a shared library. Neither is executable.
Probably you want to compile Rtest.c into an executable; it does have the
"main" function after all. Perhaps

gcc -L/usr/local/lib -o Rtest Rtest.o -L/usr/lib/R/bin -lR

Should be -L`R RHOME`/lib for R>=2.0.0 (and that Makefile needs updating).
From ONEWS

o The dynamic libraries libR and libRlapack are now installed in R_HOME/lib rather than R_HOME/bin.

You may also need to set LD_LIBRARY_PATH: I do to include /usr/local/lib.


would work.

Reid Huntsinger

-----Original Message-----
From: [EMAIL PROTECTED]
[mailto:[EMAIL PROTECTED] On Behalf Of [EMAIL PROTECTED]
Sent: Tuesday, February 08, 2005 12:14 PM
To: Rau, Roland; r-help@stat.math.ethz.ch
Subject: Re: [R] simple example of C interface to R


On Tue, Feb 08, 2005 at 10:55:01AM +0100, Rau, Roland wrote:

do you know already the page of Roger D. Peng? He has a document entitled "An Introduction to the .C Interface to R". It is located at: http://www.biostat.jhsph.edu/~rpeng/docs/interface.pdf


thanks. that's a nice tutorial, but what i'd really like to do is write a program with R embedded in it (and not have to load the interpreter). i found some documentation for doing that here: http://cran.r-project.org/doc/manuals/R-exts.html#Embedding-R-under-Unix_002 dalikes

now i'm going through the tests/Embedding directory (included with the
R source distribution).

i've gotten Rtest.c to compile with:

   $ R CMD SHLIB Rtest.c
   gcc -I/usr/lib/R/include  -I/usr/local/include -D__NO_MATH_INLINES
-mieee-fp  -fPIC  -march=pentium4 -O3 -pipe -fomit-frame-pointer -c Rtest.c
-o Rtest.o
   gcc -shared -L/usr/local/lib -o Rtest.so Rtest.o   -L/usr/lib/R/bin -lR

then when i try to run Rtest.o, i get:

   -/bin/bash: ./Rtest.o: cannot execute binary file

Rtest.c contains:

   #include "embeddedRCall.h"

   int
   main(int argc, char *argv[])
   {
     eval_R_command("print", argc, argv);
     return(0);
   }

embeddedRCall.h contains:

   #ifndef EMBEDDED_R_CALL_H
   #define EMBEDDED_R_CALL_H

   #include <Rinternals.h>

   int eval_R_command(const char *funcName, int argc, char *argv[]);
   SEXP Test_tryEval(SEXP expression, int *errorOccurred);
   void init_R(int argc, char **argv);

   #endif

i also get the "cannot execute binary file" error when trying to
compile and run the following code from the documentation:

   int Rf_initEmbeddedR(int argc, char **argv)
   { /* This is already compiled into R */
     Rf_initialize_R(argc, argv);
     setup_Rmainloop();
     return(1);
   }

   int main(int ac, char **av)
   {
     /* do some setup */
     // Rf_initEmbeddedR(argc, argv);
     /* do some more setup */

     char *argv[]= {"REmbeddedPostgres", "--gui=none", "--silent"};
     Rf_initEmbeddedR(sizeof(argv)/sizeof(argv[0]), argv);

     /* submit some code to R, which is done interactively via
           run_Rmainloop();
     */
     end_Rmainloop();
     return 0;
   }


what am i doing wrong?

______________________________________________
R-help@stat.math.ethz.ch mailing list
https://stat.ethz.ch/mailman/listinfo/r-help
PLEASE do read the posting guide!
http://www.R-project.org/posting-guide.html

______________________________________________
R-help@stat.math.ethz.ch mailing list
https://stat.ethz.ch/mailman/listinfo/r-help
PLEASE do read the posting guide! http://www.R-project.org/posting-guide.html


-- Brian D. Ripley, [EMAIL PROTECTED] Professor of Applied Statistics, http://www.stats.ox.ac.uk/~ripley/ University of Oxford, Tel: +44 1865 272861 (self) 1 South Parks Road, +44 1865 272866 (PA) Oxford OX1 3TG, UK Fax: +44 1865 272595

______________________________________________
R-help@stat.math.ethz.ch mailing list
https://stat.ethz.ch/mailman/listinfo/r-help
PLEASE do read the posting guide! http://www.R-project.org/posting-guide.html

Reply via email to