Thank you Duncan,

the paths were first so that wasn't the problem, but when I changed to the directory of the file and then typed rcmd SHLIB it did work, like you said. Great news.

Best,
Denise

--- On Thu, 3/11/10, Duncan Murdoch <murdoch@stats.uwo.ca> wrote:

From: Duncan Murdoch <murdoch@stats.uwo.ca>
Subject: Re: [R] Problem with rcmd SHLIB
To: "denise xifaras" <denisexifaras@yahoo.com>
Cc: r-help@r-project.org
Date: Thursday, March 11, 2010, 8:03 AM

On 11/03/2010 10:57 AM, denise xifaras wrote:
> Hi all,
> 
> I am trying to call a C function from R (version 2.10.1) on a windows machine.
> 
> The C code is in a .c file, I have pasted the code below although I'm very confident that it does not contain any errors (it is not my code), but also, the problem that I have occurs with every .c file that I have tried this with.
> 
> I have installed Rtools and included: C:\Rtools\bin; C:\Rtools\perl; C:\Rtools\MinGW\bin;"C:\Program Files\R\R-2.10.1\bin"
> in my path from My Computer.
>   

That is not sufficient:  those need to be first, not just "included".   There are often other versions of make or find or the other tools installed on Windows systems.
> I would like to create a .dll file in order to load it in R and call the C function.
> 
> In the command prompt I type:
> rcmd SHLIB C:\...\filename.c     (or R CMD SHLIB C:\...\filename.c)
> and I get the message:
> make: nothing to be done for 'all'
>   

I would recommend switching to that directory, then using Rcmd SHLIB filename.c.  Windows pathnames sometimes have spaces in them which can mess up the tools.

Duncan Murdoch
> I understand that this message means that the particular file has already been compiled and no changes have been made and so the .dll file must already exist. The problem is that this hasn't happened. I have never compiled a .c file this way on this computer and there definitely aren't any .dll files as compiling hasn't ever actually worked.
> 
> Any ideas about why this is happening?
> 
> Thank you all in advance for the help and any feedback,
> 
> Best,
> Denise
> 
> C code:
> 
> void convolve1(double *a, int *na,
> double *b, int *nb, double *ab)
> {
> int i, j, nab = *na + *nb -
>  1;
> for (i = 0; i < nab; i++) ab[i] = 0.0;
> for (i = 0; i < *na; i++)
> for (j = 0; j < *nb; j++)
> ab[i + j] += a[i] + b[j];
> }
> 
> 
> 
>           [[alternative HTML version deleted]]
> 
>   ------------------------------------------------------------------------
> 
> ______________________________________________
> R-help@r-project.org mailing list
> https://stat.ethz.ch/mailman/listinfo/r-help
> PLEASE do read the posting guide http://www.R-project.org/posting-guide.html
> and provide commented, minimal, self-contained, reproducible code.
>   




      
	[[alternative HTML version deleted]]

