[R] Linking Rblas [under Windows]

Rau, Roland Rau at demogr.mpg.de
Thu Mar 9 12:35:44 CET 2006


Dear Prof. Ripley,

thank you very much. It works now absolutely fine using a "Makevars"
file with the contents you suggested.

Thanks again,
Roland


> -----Original Message-----
> From: Prof Brian Ripley [mailto:ripley at stats.ox.ac.uk] 
> Sent: Thursday, March 09, 2006 12:09 PM
> To: Rau, Roland
> Cc: r-help at stat.math.ethz.ch
> Subject: Re: [R] Linking Rblas [under Windows]
> 
> Yes, lots of packages link to Rblas.  The help page for SHLIB 
> tells you
> 
>       Please consult section 'Creating shared objects' in the manual
>       'Writing R Extensions' for how to customize it (for 
> example to add
>       'cpp' flags and to add libraries to the link step) and 
> for details
>       of some of its quirks.
> 
> so it should not have been at all hard to find the information.
> 
> A portable way would be to have a file Makevars containing
> 
> PKG_LIBS=$(BLAS_LIBS)
> 
> Note that your precise example will not work in R-2.3.0 when it is 
> released, whereas the portable form will.  (In fact it only works in 
> R-2.2.0 if you have previously make libRblas.a.)
> 
> On Thu, 9 Mar 2006, Rau, Roland wrote:
> 
> > Dear all,
> >
> > when making a DLL via Rcmd SHLIB is there a way to link against a
> > library such as Rblas (I am on a Windows platform) on a case to case
> > basis?
> >
> > I played a bit around with some self-written C-code which 
> should call
> > the function 'dasum' defined in Blas.h.
> > I encountered the following problem:
> >
> > u:\codeplay>Rcmd SHLIB mysumming.c
> > Rcmd SHLIB mysumming.c
> > gcc  --shared -s  -o mysumming.dll mysumming.def mysumming.a
> > -LU:/R/R-2.2.0/src/gnuwin32   -lg2c -lR
> > mysumming.a(mysumming.o)(.text+0x1b):mysumming.c: undefined 
> reference to
> > `dasum_'
> > collect2: ld returned 1 exit status
> > make: *** [mysumming.dll] Error 1
> >
> > My (very limited) knowledge on C tells me that the function 'dasum'
> > is actually defined (due to #include <R_ext/BLAS.h> in my 
> C-file) but
> > it needs to be linked against the correct library during the linking
> > procedure. I guess the correct library should be Rblas.dll since I
> > could do it "by hand" calling gcc like this:
> >
> > gcc  --shared -s  -o mysumming.dll mysumming.def mysumming.a
> > -LU:/R/R-2.2.0/src/gnuwin32   -lg2c -lR -lRblas
> >
> > and it worked.
> >
> > Thank you very much for your help in advance.
> > If you need more details such as the C-Code, the R-Code 
> calling C, ..:
> > just let me know.
> >
> > Thanks,
> > Roland
> >
> >> version
> >         _
> > platform i386-pc-mingw32
> > arch     i386
> > os       mingw32
> > system   i386, mingw32
> > status
> > major    2
> > minor    2.0
> > year     2005
> > month    10
> > day      06
> > svn rev  35749
> > language R
> >
> > u:\codeplay>gcc --version
> > gcc --version
> > gcc (GCC) 3.4.2 (mingw-special)
> > Copyright (C) 2004 Free Software Foundation, Inc.
> > This is free software; see the source for copying 
> conditions.  There is
> > NO
> > warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR
> > PURPOSE.
> >
> > +++++
> > This mail has been sent through the MPI for Demographic 
> Rese...{{dropped}}
> >
> > ______________________________________________
> > R-help at stat.math.ethz.ch mailing list
> > https://stat.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
> 

+++++
This mail has been sent through the MPI for Demographic Rese...{{dropped}}




More information about the R-help mailing list