Hi,
I've just about got myself transferred from windowsXP to Linux (Mepis
3.3.1-1). I've got R 2.1.1, emacs, and ess running from the debian
repositories. Of course, there is a hitch. I have a bit of C code in one
of my personal functions. I have, apparently without problem, been able
to compile it using R CMD SHLIB, but when I try to dyn.load it I get the
following error:
> dyn.load("Cfiles/Neutral/Bell2000.dll")
Error in dyn.load(x, as.logical(local), as.logical(now)) :
unable to load shared library
'/home/tyler/RWorkingDirectory/Cfiles/Neutral/Bell2000.dll':
/home/tyler/RWorkingDirectory/Cfiles/Neutral/Bell2000.dll: invalid ELF
header
I take this to mean one of the required libraries is either not loaded
or not updated. Or, I've overlooked something. Can anyone point me to a
solution? I tried updating my perl files, and I haven't found anything
using the R Site Search...
Thanks,
Tyler
dyn.load in linux: missing libraries?
4 messages · Peter Dalgaard, Tyler Smith, Uwe Ligges
Tyler Smith <tyler.smith at mail.mcgill.ca> writes:
Hi, I've just about got myself transferred from windowsXP to Linux (Mepis 3.3.1-1). I've got R 2.1.1, emacs, and ess running from the debian repositories. Of course, there is a hitch. I have a bit of C code in one of my personal functions. I have, apparently without problem, been able to compile it using R CMD SHLIB, but when I try to dyn.load it I get the following error:
> dyn.load("Cfiles/Neutral/Bell2000.dll")
Error in dyn.load(x, as.logical(local), as.logical(now)) :
unable to load shared library
'/home/tyler/RWorkingDirectory/Cfiles/Neutral/Bell2000.dll':
/home/tyler/RWorkingDirectory/Cfiles/Neutral/Bell2000.dll: invalid ELF
header
I take this to mean one of the required libraries is either not loaded
or not updated. Or, I've overlooked something. Can anyone point me to a
solution? I tried updating my perl files, and I haven't found anything
using the R Site Search...
Nope, the missing library is the one that you're trying to load. Dynamic libraries are not called .dll on Linux, but rather .so... You should probably read up on "Writing R Extensions", including the hints on how to write portable code (use library.dynam).
O__ ---- Peter Dalgaard ?ster Farimagsgade 5, Entr.B c/ /'_ --- Dept. of Biostatistics PO Box 2099, 1014 Cph. K (*) \(*) -- University of Copenhagen Denmark Ph: (+45) 35327918 ~~~~~~~~~~ - (p.dalgaard at biostat.ku.dk) FAX: (+45) 35327907
ah, that's better. For an immediate fix I just changed .dll to .so, and it appears to work perfectly. I will read through Writing R Extensions to make sure I understand what I'm doing! Thanks! Tyler
Peter Dalgaard wrote:
Tyler Smith <tyler.smith at mail.mcgill.ca> writes:
Hi, I've just about got myself transferred from windowsXP to Linux (Mepis 3.3.1-1). I've got R 2.1.1, emacs, and ess running from the debian repositories. Of course, there is a hitch. I have a bit of C code in one of my personal functions. I have, apparently without problem, been able to compile it using R CMD SHLIB, but when I try to dyn.load it I get the following error:
dyn.load("Cfiles/Neutral/Bell2000.dll")
Error in dyn.load(x, as.logical(local), as.logical(now)) : unable to load shared library '/home/tyler/RWorkingDirectory/Cfiles/Neutral/Bell2000.dll': /home/tyler/RWorkingDirectory/Cfiles/Neutral/Bell2000.dll: invalid ELF header I take this to mean one of the required libraries is either not loaded or not updated. Or, I've overlooked something. Can anyone point me to a solution? I tried updating my perl files, and I haven't found anything using the R Site Search...
Nope, the missing library is the one that you're trying to load. Dynamic libraries are not called .dll on Linux, but rather .so... You should probably read up on "Writing R Extensions", including the hints on how to write portable code (use library.dynam).
Tyler Smith wrote:
ah, that's better. For an immediate fix I just changed .dll to .so, and
No, change it to .Platform$dynlib.ext or do as already recommended: use library.dynam() Uwe Ligges
it appears to work perfectly. I will read through Writing R Extensions to make sure I understand what I'm doing! Thanks! Tyler Peter Dalgaard wrote:
Tyler Smith <tyler.smith at mail.mcgill.ca> writes:
Hi, I've just about got myself transferred from windowsXP to Linux (Mepis 3.3.1-1). I've got R 2.1.1, emacs, and ess running from the debian repositories. Of course, there is a hitch. I have a bit of C code in one of my personal functions. I have, apparently without problem, been able to compile it using R CMD SHLIB, but when I try to dyn.load it I get the following error:
dyn.load("Cfiles/Neutral/Bell2000.dll")
Error in dyn.load(x, as.logical(local), as.logical(now)) : unable to load shared library '/home/tyler/RWorkingDirectory/Cfiles/Neutral/Bell2000.dll': /home/tyler/RWorkingDirectory/Cfiles/Neutral/Bell2000.dll: invalid ELF header I take this to mean one of the required libraries is either not loaded or not updated. Or, I've overlooked something. Can anyone point me to a solution? I tried updating my perl files, and I haven't found anything using the R Site Search...
Nope, the missing library is the one that you're trying to load. Dynamic libraries are not called .dll on Linux, but rather .so... You should probably read up on "Writing R Extensions", including the hints on how to write portable code (use library.dynam).
______________________________________________ R-devel at r-project.org mailing list https://stat.ethz.ch/mailman/listinfo/r-devel