[R] R CMD SHLIB problem [make: *** No rule to make target ]
Prof Brian Ripley
ripley at stats.ox.ac.uk
Fri Jul 20 18:08:44 CEST 2007
Please do *not* use paths in your C code, especially those with spaces in.
(The rw-FAQ did advise you not to install into a path with spaces in if
you wanted to do development work.) The path is not needed for system
include files (you used <>) and is likely the problem.
And please do not post multiple times.
On Fri, 20 Jul 2007, Diogo Alagador wrote:
> Hy all,
>
> I apologize for my ingenuity in regard to interfaces in R, but I do need it for my work. In that respect I took a simple and small example from the net (the "hello world", one) to interface R with C.
> I have a Windows XP OS using R.2.5.0 and in that regard I have installed the Perl and RTools files to my PC. I also wrote a proper path file, as suggested.
>
> The C program is:
>
> #include <C:/Archivos de programa/R-2.5.0/include/R.h>
> void hello(int *n){
> int i;
> for(i=0;i<*n;i++){
> Rprintf("Hello, world!\n");
> }
> }
You don't need R.h, but you do need to declare Rprintf, which is in
<R_ext/Print.h>. So a more legible version of a correct program would be
% cat holla.c
#include <R_ext/Print.h>
void hello(int *n)
{
int i;
for(i = 0; i < *n; i++)
Rprintf("Hello, world!\n");
}
which you could call by
> dyn.load("holla.dll")
> .C("hello", 10L)
(note the L).
> However when trying to compile the a C file in the command window:
>
> R CMD SHLIB holla.c
>
> I get the following message:
>
> make: *** No rule to make target `holla.d', needed by `makeMakedeps'. Stop.
>
> Can somebody give me a hand on this,
> Thanks in advance
>
>
> Diogo André Alagador
>
> [[alternative HTML version deleted]]
>
>
--
Brian D. Ripley, ripley at stats.ox.ac.uk
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
More information about the R-help
mailing list