[Rd] Customized Makefiles (C++ and R)

Uwe Ligges ligges at statistik.uni-dortmund.de
Tue Aug 8 08:23:06 CEST 2006


You might want to publish you package on some URL and perhaps someone 
reading this list looks at it and is able to help, but without seeing 
the details, it wil be hard and only guesswork.

Uwe Ligges

Selwyn-Lloyd McPherson wrote:
> If I do R CMD CHECK, R uses the makefile that came with the source  
> files to create the .o files but does not create the .so file (I  
> still get the "cp: *.so: No such file or directory" error). I tried  
> playing around with that makefile but to no avail. I can use R CMD  
> SHLIB to create the .so file from the .o files afterwards, and if I  
> do RCMD CHECK again it gets past the "checking whether package  
> 'chpoly' can be installed ..." step but gets hung up with a set of  
> new errors:
> 
> ======
> 
> Error: .First.lib failed for 'chpoly'
> Call sequence:
> 2: stop(gettextf(".First.lib failed for '%s'", libraryPkgName(package)),
>         domain = NA)
> 1: library(package, lib.loc = lib.loc, character.only = TRUE, verbose  
> = FALSE)
> Execution halted
> See section 'Generic functions and methods' of the 'Writing R  
> Extensions'
> manual.
> * checking replacement functions ... WARNING
> Error: .First.lib failed for 'chpoly'
> Call sequence:
> 2: stop(gettextf(".First.lib failed for '%s'", libraryPkgName(package)),
>         domain = NA)
> 1: library(package, lib.loc = lib.loc, character.only = TRUE, verbose  
> = FALSE)
> Execution halted
> In R, the argument of a replacement function which corresponds to the  
> right
> hand side must be named 'value'.
> * checking foreign function calls ... WARNING
> Error: .First.lib failed for 'chpoly'
> Call sequence:
> 2: stop(gettextf(".First.lib failed for '%s'", libraryPkgName(package)),
>         domain = NA)
> 1: library(package, lib.loc = lib.loc, character.only = TRUE, verbose  
> = FALSE)
> Execution halted
> See section 'System and foreign language interfaces' of the 'Writing R
> Extensions' manual.
> 
> =====
> 
> .First.lib is defined as:
> 
> .First.lib <- function(libname, pkgname) { library.dynam 
> ("chpoly",pkgname,libname) }
> 
> which I think is correct, but maybe not?
> 
> I tried creating a test package that uses C++ to take in some  
> arguments, do some simple math, and spit them back out again and that  
> works with no problem (although there is no makefile in that test  
> version. . .)
> 
> If you have any ideas, let me know. . . Thanks so much!
> Selwyn-Lloyd McPherson
> 
> 
> On Aug 6, 2006, at 9:34 PM, Dirk Eddelbuettel wrote:
> 
>> On 6 August 2006 at 18:50, Selwyn-Lloyd McPherson wrote:
>> | Hi everyone,
>> |
>> | I am writing a package for R and implementing a collection of C++
>> | scripts with it. Unfortunately, I did not write the C++ files, so I
>> | am dependent on using the supplied makefile that came with it. This
>>
>> Not necessarily. You as R package author are responsible of getting  
>> your
>> sources into a form understood by 'R CMD ... ' and friends.
>>
>> | works fine for compiling the program outside of R, but in trying to
>> | create the package, the .o files are created but at the end I run
>> | into this error:
>> |
>> | cp: *.so: No such file or directory
>> | ERROR: compilation failed for package 'chpoly'
>> |
>> |
>> | I think this is because the .so file is never created, but I  
>> might be
>> | wrong. Is there something I have to add to the makefile to ensure
>> | that everything works out okay?
>>
>> Quite possibly, but it is hard to say from what you posted.
>>
>> My general advice is to fetch a few of the 700+ CRAN packages and  
>> study those
>> with a similar layout -- in your case with C++.  There are numerous  
>> ones that
>> wrap to external C++ libraries and file collections.  You should  
>> fine one
>> that fits.
>>
>> Hope this helps, Dirk
>>
>> -- 
>> Hell, there are no rules here - we're trying to accomplish something.
>>                                                   -- Thomas A. Edison
>>
> 
> ______________________________________________
> R-devel at r-project.org mailing list
> https://stat.ethz.ch/mailman/listinfo/r-devel



More information about the R-devel mailing list