Hello,

On 03/08/2010 06:16 PM, 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.

I'd encourage you to use the .Call interface,

2, I noticed there is Makevars after I ran Rcpp.package.skeleton,
do I need modify this file before I run R CMD build?

no

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?

those are examples that we expand to show the kind of code you can write. feel free to dump them.

In particular, it shows you how you declare c++ functions to be used by R:
- The RcppExport prevents c++ mangling. see the rationale for this in writing R extensions. (RcppExport is just an alias for extern "C")
- The function returns a SEXP (see writing R extensions)
- The function takes zero or more SEXP as input (see writing R extensions)

So I'd suggest you write your function something like this :

RcppExport SEXP tranptest( SEXP filename_, SEXP para_){
        Rcpp::CharacterVector filename( filename_ ) ;
        Rcpp::NumericVector para(para_) ;

        // use filename and para to do whatever you want to do with them
        // return  something
}

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?

Again, I suggest you look into the .Call interface and go for something like this:

.Call( "tranptest", filenames, params, PACKAGE = "yourpackage" )

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?

Rcpp.package.skeleton adds a useDynLib directive to the NAMESPACE so you should be fine.

Thank you so much!
>
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

Reply via email to