[Rd] Rmath library problems

Prof Brian Ripley ripley at stats.ox.ac.uk
Mon Jul 25 16:08:38 CEST 2005

On Mon, 25 Jul 2005, Anders Brix Jensen wrote:

> Has anybody successfully called the Rmath library from C using the MS
> Visual Studio compiler (I am using Visual Studio 6.0)?
> I have compiled the Rmath library using gcc, and the 'test.c' program
> (which makes a call to qnorm) works fine when compiled with gcc. However,
> I get a fatal memory error when I run it after compiling it with Visual C.

What is `it'?  No interpretation I can make quite corresponds to the later 

> Would this memory problem be related to the compiler, or is it because I
> have not used the right compiler and/or linker options?

Probably the last.

> Two things puzzles me regarding compilation of Rmath:
> 1) The gcc compiler only seems to need the Rmath.dll to compile and
> execute. It needs neither Rmath.a nor Rmath.def.

> 2) The VC compiler needs a '.a'-file, but Rmath.a does not work (cannot
> find the symbols isnan and expm1). It compiles fine with libRmath.a
> however, but then it crashes as mentioned above.

These are actually statements about the linkers when linking against 
Rmath.dll, and not about compiling Rmath.  You should be linking a main 
function compiled under VC++ against a VC++ import library (which you can 
make from Rmath.def by lib /def:Rmath.def /out:Rmath.lib).  Then

cl /MT /Ox  /I..\..\include test.c Rmath.lib

works for me without any errors.

You can find all the background and hints in README.packages.

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-devel mailing list