[R] Urgent:again question about nmath/standalone

Prof Brian Ripley ripley at stats.ox.ac.uk
Thu Apr 22 16:09:12 CEST 2004


WHY is this urgent?

The error message is '/usr/bin/ld: cannot find -lRmath' so you have not
put libRmath somewhere ld can find it.  That is not an R question, and we
can't help you solve it, especially as you have not told us your OS.  It
does look as if you may not have permission to read the copies in
/usr/lib, but you haven't told us whether your user account is the same as
bcdesai, not the search path ld is using.  Please ask your local OS 
support for help.


On Thu, 22 Apr 2004 xt_wang at cs.concordia.ca wrote:

> Hello, all,
> 
> I have the same question as the last mail I sent. I have installed libRmath in 
> my system. But I still can not link Rmath through -lRmath. The whole process 
> is as follow.Is there anybody who is so kind to help me find out the problem? 
> I will appreciate very much.
> 
> [credsim at confsys ~]$ cd /usr/lib
> [credsim at confsys lib]$ ls -l libR*
> -rw-------    1 bcdesai  bcdesai    237828 Apr 15 18:10 libRmath.a
> lrwxrwxrwx    1 root     root           17 Apr 15 18:12 libRmath.so -> 
> libRmath.so.1.0.0
> lrwxrwxrwx    1 root     root           17 Apr 15 18:12 libRmath.so.1 -> 
> libRmath.so.1.0.0
> -rw-------    1 bcdesai  bcdesai    114084 Apr 15 18:10 libRmath.so.1.0.0
> [credsim at confsys lib]$ locate test1.c
> /b2/home/credsim/src/test1.c
> /b2/downloads/a-mp-ms-my-o-p-u/mysql-3.23.55/heap/hp_test1.c
> /b2/downloads/a-mp-ms-my-o-p-u/mysql-3.23.55/myisam/ft_test1.c
> /b2/downloads/a-mp-ms-my-o-p-u/mysql-3.23.55/myisam/mi_test1.c
> /b2/home-apr-18-04-1145Am/credsim/src/test1.c
> [credsim at confsys lib]$ cd  /b2/home/credsim/src
> [credsim at confsys ~/src]$ gcc -Wall -o test1 test1.c -lRmath -lm
> test1.c:12: warning: return type defaults to `int'
> test1.c: In function `main':
> test1.c:21: warning: implicit declaration of function `Allocate_Memory_2D'
> test1.c:21: warning: assignment makes pointer from integer without a cast
> test1.c:22: warning: assignment makes pointer from integer without a cast
> test1.c:37: warning: too many arguments for format
> test1.c:44: warning: implicit declaration of function `solve'
> test1.c:44: warning: assignment makes pointer from integer without a cast
> test1.c:54: warning: control reaches end of non-void function
> test1.c: At top level:
> test1.c:58: warning: type mismatch with previous implicit declaration
> test1.c:21: warning: previous implicit declaration of `Allocate_Memory_2D'
> test1.c:58: warning: `Allocate_Memory_2D' was previously implicitly declared 
> to return `int'
> /usr/bin/ld: cannot find -lRmath
> collect2: ld returned 1 exit status
> [credsim at confsys ~/src]$ gcc test1.c -o test1 -lRmath
> test1.c: In function `main':
> test1.c:21: warning: assignment makes pointer from integer without a cast
> test1.c:22: warning: assignment makes pointer from integer without a cast
> test1.c:44: warning: assignment makes pointer from integer without a cast
> test1.c: At top level:
> test1.c:58: warning: type mismatch with previous implicit declaration
> test1.c:21: warning: previous implicit declaration of `Allocate_Memory_2D'
> test1.c:58: warning: `Allocate_Memory_2D' was previously implicitly declared 
> to return `int'
> /usr/bin/ld: cannot find -lRmath
> collect2: ld returned 1 exit status
> 
> "test1.c"
> #define MATHLIB_STANDALONE
> #include <math.h>
> #include <stdlib.h>
> #include <stdio.h>
> #include </usr/local/lib/R/include/Rmath.h>
> 
>  main()
> {
> 
>   double **x, **y, **x1, **y1, valin;
>   int i,j,I,J;
>   
> 
>   I=3;
>   J=3;
> 
>   x=Allocate_Memory_2D( I, J, x1);
>   y=Allocate_Memory_2D( I, J, y1);
> 
> 
>   FILE *in_file; 
> 
> 
>     /* input x value from file data_2Dx.txt */ 
>     in_file=fopen("data_2Dx.txt","r");
>         if (in_file==NULL)
>         {/*Test for error*/
>                 fprintf(stderr,"Error:Unable to input file 
> from 'data_2Dx.txt'\n");
>                 exit(8);
>         }
>         for( i=0;i<I; i++)
>           for (j=0;j<J;j++)
>           { fscanf(in_file, "%lf\n", &valin, stdin);/* read a single double 
> value in */
>                x[i][j]=valin;
>                    valin=0.0;
>           }
>         fclose(in_file);
> 
> 
>    y=solve(x);
> 
>    for (i=0;i<I;i++)
>      for (j=0;j<J;j++)
>      {
>        printf ("y[%d][%d]=%lf\n", i, j, y[i][j]);
>      }
> 
> }
> 
> 
> double **Allocate_Memory_2D( int I, int J, double **W)
> { 
>         int i;
> 
>         W=(double **)malloc(I*sizeof (double *));
>     if(!W)
>       printf("It is out of memory. Allocation failed.");
>         for (i=0;i<I;i++)
>         {
>         W[i]=(double *)malloc(J*sizeof(double));
>         if(!W[i])
>           printf("It is out of memory. Allocation failed.");
>         }
>         return (W);
> }
> 
> Thanks a lot!
> 
> Maggie Wang
> 
> ______________________________________________
> R-help at stat.math.ethz.ch mailing list
> https://www.stat.math.ethz.ch/mailman/listinfo/r-help
> PLEASE do read the posting guide! http://www.R-project.org/posting-guide.html
> 
> 

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