Hello. I am trying to use a FORTRAN subroutine from within R (Windows version). This fortran subroutine is compiled using the Open Watcom Fortran compiler and the compiled object file is called ritscale.obj. Following the explanation on pages 193-194 of "The New S language" I use the dyn.load command:> dyn.load("f:/maxent/ritscale.obj")Error in dyn.load(x, as.logical(local), as.logical(now)) : unable to load shared library 'f:/maxent/ritscale.obj': LoadLibrary failure: %1 n'est pas une application Win32 valide. The error message says: LoadLibrary failure: %1 is not a valid Win32 application I do not know what this means. Can someone help? Bill Shipley
Prof Brian Ripley
2007-Feb-02 15:50 UTC
[R] dynamic loading error with Open Watcom object file
On Fri, 2 Feb 2007, Bill Shipley wrote:> Hello. I am trying to use a FORTRAN subroutine from within R (Windows > version). This fortran subroutine is compiled using the Open Watcom Fortran > compiler and the compiled object file is called ritscale.obj. Following the > explanation on pages 193-194 of "The New S language" I use the dyn.load > command: > >> dyn.load("f:/maxent/ritscale.obj") > Error in dyn.load(x, as.logical(local), as.logical(now)) : > unable to load shared library 'f:/maxent/ritscale.obj': > LoadLibrary failure: %1 n'est pas une application Win32 valide. > > The error message says: LoadLibrary failure: %1 is not a valid Win32 > application > > I do not know what this means. Can someone help?Yes. Unlike versions of S from the 1980s and 1990s, dyn.load() in R loads a DLL and not a compiled object. As the help page says: dyn.load(x, local = TRUE, now = TRUE) x: a character string giving the pathname to a shared library or DLL. 'shared library' is a Unix name for what Windows calls a DLL. So, you need to make a DLL from ritscale.obj. I used to know how to do that under Watcom, but (S Programming p.245) 'it is fraught with difficulties'. It would be much easier to use the recommended compiler (MinGW's g77). -- 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