Yes! that is what I am looking for. When I post my question, I said I cannot catch the key point in "Writing R Extensions".
Follow your suggestion, I almost have reached my goal although I passed the R CMD check mypackage. Before I install it (I need ask UNIX adminstrator to do it), I check the package, I got the information > dyn.load("tranptest.so") > filenames<-c("Mrklist.txt","CCdata.txt","outputfile") > param<-c(1,0,1,0,1,1) > .C("tranptest",as.character(filenames),as.double(param)) *** caught segfault *** address 0, cause 'memory not mapped' Traceback: 1: .C("tranptest",as.character(filenames), as.double(param)) Do you have any clue about the error? I think it is very close tothe end. Thank you so much . You save me a tons of time, Alex --- On Mon, 3/8/10, Simon Urbanek <simon.urba...@r-project.org> wrote: > From: Simon Urbanek <simon.urba...@r-project.org> > Subject: Re: [Rd] for help on building a R package with several R function > and a bunch of c, c++ > To: alex46...@yahoo.com > Cc: "Romain Francois" <rom...@r-enthusiasts.com>, r-devel@r-project.org, > "Dirk Eddelbuettel" <e...@debian.org> > Date: Monday, March 8, 2010, 12:53 PM > Alex, > > On Mar 8, 2010, at 12:16 , alex46...@yahoo.com > wrote: > > > 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. > > > > Yes, that's perfect - for the kind of usage you don't need > Rcpp at all - R supports C++ sources out of the box. Just > make sure your tranptest function is either in a .c file or > you put > extern "C" > in front of it if it's in .cpp , e.g: > > foo.cpp: > extern "C" void tranptest(char **fn, double *par) { > ... > } > > > > 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? > > > > yes, in R/foo.R (replace "foo" by any name you want) > > > > 4, Do I need do anything to run library.dyname to load > those complied objects? > > If you have a namespace just add > useDynLib(foo) > where "foo" is the name of your package. If you don't have > a namespace (or don't kwno what that is ;)) just add a file > R/zzz.R with the following content to your package: > .First.lib <- function(libname, pkgname) > library.dynam("foo", pkgname, libname) > where "foo" is the name of your package. > > > Where I can make sure it successful and I can use > .C("tranptest",....) in R before the wholepackage > installed? > > > > It's really simple - you don't need to install the package > to test it. Assuming "foo" is the name of your package: > Build the sources: > R CMD SHLIB -o foo.so *.c* > > start R in the same directory: > R > # load the library you just compiled > dyn.load("foo.so") > # test your code > .C("tranptest", c("file1", "file2"), as.double(1,2,3,4)) > > Cheers, > Simon > > > > > > Alex > > --- On Mon, 3/8/10, Romain Francois <rom...@r-enthusiasts.com> > wrote: > > > >> From: Romain Francois <rom...@r-enthusiasts.com> > >> Subject: Re: [Rd] for help on building a R package > with several R function and a bunch of c, c++ > >> To: alex46...@yahoo.com > >> Cc: r-devel@r-project.org, > "Dirk Eddelbuettel" <e...@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, alex46...@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<rom...@r-enthusiasts.com> > >> wrote: > >>> > >>> > >>> From: Romain Francois<rom...@r-enthusiasts.com> > >>> Subject: Re: [Rd] for help on building a R > package > >> with several R function and a bunch of c, c++ > >>> To: alex46...@yahoo.com > >>> Cc: "Dirk Eddelbuettel"<e...@debian.org>, > >> r-devel@r-project.org > >>> Date: Sunday, March 7, 2010, 3:59 AM > >>> > >>> > >>> On 03/06/2010 03:27 AM, alex46...@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<e...@debian.org> > >> wrote: > >>>> > >>>> > >>>> From: Dirk Eddelbuettel<e...@debian.org> > >>>> Subject: Re: [Rd] for help on building a R > package > >> with several R function and a bunch of c, c++ > >>>> To: alex46...@yahoo.com > >>>> Cc: r-devel@r-project.org > >>>> Date: Friday, March 5, 2010, 8:25 PM > >>>> > >>>> > >>>> > >>>> On 5 March 2010 at 13:15, alex46...@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.w...@gmail.com> > >>>>     To: alex46...@yahoo.com > >>>>     Cc: r-h...@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,<alex46...@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 > >> > >> > > > > > > > > > > ______________________________________________ > > R-devel@r-project.org > mailing list > > https://stat.ethz.ch/mailman/listinfo/r-devel > > ______________________________________________ R-devel@r-project.org mailing list https://stat.ethz.ch/mailman/listinfo/r-devel