[Rd] for help on building a R package with several R function and a bunch of c, c++

alex46015 at yahoo.com alex46015 at yahoo.com
Mon Mar 8 18:16:01 CET 2010


I built R package with only R code before, this is first time I build R package with mixed R code and C, C++ code. I would try Rcpp on our center UNIX, before I ask the administrator to install it, I need confirm several issue are right. Thank you for you patient.

1, I change main function as a general function with certain name such as void tranptest(char* filename[], double* para[]), and copy this file and other related c, c++  h, program to /src, and removed makefile.

2, I noticed there is Makevars after I ran Rcpp.package.skeleton,
do I need modify this file before I run R CMD build? what I need do for  rcpp_hello_world.cpp rcpp_hello_world.cpp? it is template file handled by the program or it is for me to edit it as template?

3, Do I need write a R function such as tranptest<-function(inputfile, ctlfile,outfile, param1,param2,param3)
{
filenames<-c(inputfile,ctlfile,outfile)
params<-as.vector(c(param1, param2,param3))
.C("tranptest", as.character(filenames),as.double(params))
}
before I run R CMD build? if so, that means I put this R function in /R?

4, Do I need do anything to run library.dyname to load those complied objects? Where I can make sure it successful and I can use .C("tranptest",....) in R before the wholepackage installed?


Thank you so much!

Alex
--- On Mon, 3/8/10, Romain Francois <romain at r-enthusiasts.com> wrote:

> From: Romain Francois <romain at r-enthusiasts.com>
> Subject: Re: [Rd] for help on building a R package with several R function and a bunch of c, c++
> To: alex46015 at yahoo.com
> Cc: r-devel at r-project.org, "Dirk Eddelbuettel" <edd at debian.org>
> Date: Monday, March 8, 2010, 2:47 AM
> Hi,
> 
> Yes, the problem is with spaces in path names. This has
> been fixed and 
> will appear as Rcpp 0.7.8 in a few days.
> 
> If you are in a rush, you can build it from svn, or quote
> the path that 
> is returned from CxxFlags.
> 
> Feel free to get back to us with more questions, although
> I'd encourage 
> you to use the dedicated Rcpp-devel mailing list :
> https://lists.r-forge.r-project.org/cgi-bin/mailman/listinfo/rcpp-devel
> 
> Romain
> 
> On 03/08/2010 04:20 AM, alex46015 at yahoo.com
> wrote:
> > Thank you for your help. So far what I did  on
> my notebook as follows. My OS is windows7.
> > Â
> > I downloaded Rcpp windows version, and load
> library("Rcpp") then.
> > Â
> > 1, Change main funnction to f1.cpp, remove makefile.
> > 2 ,run
> Rcpp.package.skeleton(name="test",list=c("rec1.R","rect2.R"))
> > 3, edit  /man, /R, copied my exist file whch I
> have done sucessfully  without any c++ program
> before.
> > 4, copy  f1.cpp and all other related cpp and c
> into /src/
> > 5. Rcmd  build --binary test
> > Â
> > It showed------
> > Â
> > making DLL....
> > gcc
> -l“C:/PROGRA~2/R/R-210~1.1/include",“C:/PROGRA~2/R/R-210~1.1/bin/Rscript
> -e' Rcpp:::CxxxFlags<>'` -03 -Wall -std =gnu -999 -c
> cranbombind.c -o cranbombind.o
> > Â
> > gcc.exe: **\Documents/R/win-library/2.10/Rcpp/lib: No
> such file or directory...
> >
> > I checked the path, it did have C:\Users\alex
> **\Documents\R\win-library\2.10\Rcpp\lib
> > Â
> > I don't know how I can fix the problem. do you think
> it could be problem there is a space between my first name
> and last name..
> > Â
> > All I tried are on my own PC at home , I will tryon
> other  PC in my office.
> > Â
> > Do you have suggestion?. Thanks,
> > Â
> > Alex
> > --- On Sun, 3/7/10, Romain Francois<romain at r-enthusiasts.com> wrote:
> >
> >
> > From: Romain Francois<romain at r-enthusiasts.com>
> > Subject: Re: [Rd] for help on building a R package
> with several R function and a bunch of c, c++
> > To: alex46015 at yahoo.com
> > Cc: "Dirk Eddelbuettel"<edd at debian.org>,
> r-devel at r-project.org
> > Date: Sunday, March 7, 2010, 3:59 AM
> >
> >
> > On 03/06/2010 03:27 AM, alex46015 at yahoo.com
> wrote:
> >> I think the first question should be how to build
> a R function to call a bunch of C ,C++ which include one
> main program, and a makefile. My goal to build a R package
> will be next step.
> >
> > You should jump straight to making a package. You are
> making you life
> > difficult with this "main program&  makefile"
> model.
> >
> > Install Rcpp and try to use the Rcpp.package.skeleton,
> this will create
> > a simple package that uses some C++ classes from Rcpp,
> as well as an R
> > function that calls them.
> >
> >> I read Rcpp , I am not sure if 
> RcppResultSet can solve my problem or other function. Once I
> make sure it work I need ask UNIX adminstrator to install
> it.
> >
> > We don't know what your problem is. We can answer a
> question, but we
> > cannot guess the question for you.
> >
> > Rcpp works, please refer to our unit tests, for
> example look at this
> > vignette:
> > http://cran.r-project.org/web/packages/Rcpp/vignettes/Rcpp-unitTests.pdf
> >
> >> I think it shouldn't be very complex,  as I
> know to build a R function easy with one C function.
> >>
> >> Thanks you for yout attention!
> >>
> >> Alex
> >>
> >> --- On Fri, 3/5/10, Dirk Eddelbuettel<edd at debian.org> 
> wrote:
> >>
> >>
> >> From: Dirk Eddelbuettel<edd at debian.org>
> >> Subject: Re: [Rd] for help on building a R package
> with several R function and a bunch of c, c++
> >> To: alex46015 at yahoo.com
> >> Cc: r-devel at r-project.org
> >> Date: Friday, March 5, 2010, 8:25 PM
> >>
> >>
> >>
> >> On 5 March 2010 at 13:15, alex46015 at yahoo.com
> wrote:
> >> | Hope I can get quick help from here, I have a
> bunch of c, c++ included main function and makefile. It
> works well on both UNIX and windows. I tried to build R
> package which include this C++ program and several other R
> functions.  These R function here are
> independent  of c++ code. I prefer to define one R
> function to call this c++ program (main function).
> >> |
> >> | I know how to build R package with just R
> function, but I don't know how to handle those c++ c code
> after I copied those  code  in ./src, I am
> reading manual "Writing R Extensions" , but I did n't catch
> the key point . Do you know any easy way to do it? ,
> >>
> >> When you asked _that exact same question_ this
> morning on r-help, you got the
> >> following answer:
> >>
> >>      From: Whit Armstrong<armstrong.whit at gmail.com>
> >>      To: alex46015 at yahoo.com
> >>      Cc: r-help at r-project.org
> >>      Subject: Re: [R] for help on
> building a R package with several R function and a bunch of
> c, c++
> >>      Date: Fri, 5 Mar 2010 10:33:54
> -0500
> >>
> >>      Pick up Rcpp, make your life
> easier.
> >>
> >>      http://dirk.eddelbuettel.com/code/rcpp.html
> >>
> >>      -Whit
> >>
> >>      On Fri, Mar 5, 2010 at 9:19
> AM,<alex46015 at yahoo.com> 
> wrote:
> >>     Â>  Hope I can get quick
> help from here, I have a bunch of c, c++ included main
> function and makefile. It works well on both UNIX and
> windows. I tried to build R package which include this C++
> program and several other R functions.  R function
> here are independent  c++ code. I prefer to define
> one R function to call this c++ program.
> >>     Â>
> >>     Â>  Do you know any easy
> way to do it? I am reading manual "Writing R Extensions", I
> didn't catch the key point. I know how to build R package
> with just R function,  If I put all c++ code and
> makefile in /src...what I need do?
> >>     Â>
> >>     Â>  Thank you in
> advance!
> >>     Â>
> >>     Â>  Alex
> >>
> >> Now, can you let us know
> >>
> >>       a) what part of the
> answer was unclear to you, and
> >>
> >>       b) what made you think
> you needed to repost _the identical question_ here
> >>
> >> | Thank you in advance!
> >>
> >> You're welcome.
> >>
> >> Dirk
> 
> -- 
> Romain Francois
> Professional R Enthusiast
> +33(0) 6 28 91 30 30
> http://romainfrancois.blog.free.fr
> |- http://tr.im/OIXN : raster images and RImageJ
> |- http://tr.im/OcQe : Rcpp 0.7.7
> `- http://tr.im/O1wO : highlight 0.1-5
> 
> 






More information about the R-devel mailing list