[R] Load the shared object/DLL

Prof Brian Ripley ripley at stats.ox.ac.uk
Wed Apr 16 12:55:13 CEST 2008


On Wed, 16 Apr 2008, Guohui Ding wrote:

> Dear All,
>
> I have written a function in c (in a file named 'a.c') as follows,

*PLEASE* don't claim credit for the work of others (in this case it is me 
that you owe the apology and retraction to).  That is from 'S Programming' 
p. 126, and 'Writing R Extensions'.

> void convolve(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];
> }
>
> Then, I created a shared file in the Windows,
>
> R CMD SHLIB -d -o a.dll a.c
>
> Every thing is OK now.
>
> I changed the working directory of the R environment to the directory
> containing the a.dll.
> I enter two commands in the R console,
>
>> dyn.load("a.dll")
>> is.loaded("a")
> [1] FALSE
>
> The question is that, why was the "a.dll" failed to be loaded in the R
> enviroment? Which step resuted in this problem?

It did not fail.  is.loaded("a") looks for entry point "a", and you have 
"convolve".

> Any suggestion was welcome.

Do note that posting guide said about where to post non-R programming 
questions.

>
> G. Ding
>
> 	[[alternative HTML version deleted]]
>
> ______________________________________________
> R-help at 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.
>

-- 
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