Dear HelpeRs, I am trying to use an thirdy-part library under Linux (the library is developed both for Windows and for Linux). I have tried different solutions (with the library developer) but we are not able to solve the problem. So I try to ask for your help in order to escape from the full stop where we are at the moment. The problem looks to depend on the dyn.load function (technical details are below). Thanks a lot for your work (it is an invaluable resource). Best, domenico The library is called POP.R. I installed it but I have the following error when I try to load it: --------------------------------------------------------------------------------------------------------------------------------------------- > library(POP.R) Error in dyn.load(x, as.logical(local), as.logical(now)) : unable to load shared library '/usr/lib/R/library/POP.R/libs/ezlic20.so': libstdc++-libc6.2-2.so.3: cannot open shared object file: No such file or directory Error in library(POP.R) : .First.lib failed for 'POP.R' --------------------------------------------------------------------------------------------------------------------------------------------- Nevertheless the file exists: --------------------------------------------------------------------------------------------------------------------------------------------- > file.exists("/usr/lib/R/library/POP.R/libs/ezlic20.so") [1] TRUE --------------------------------------------------------------------------------------------------------------------------------------------- I tried also directly using the dyn.load function on the command line (without and with the local flag): --------------------------------------------------------------------------------------------------------------------------------------------- > dyn.load("/usr/lib/R/library/POP.R/libs/ezlic20.so",local=FALSE) Error in dyn.load(x, as.logical(local), as.logical(now)) : unable to load shared library '/usr/lib/R/library/POP.R/libs/ezlic20.so': libstdc++-libc6.2-2.so.3: cannot open shared object file: No such file or directory > dyn.load("/usr/lib/R/library/POP.R/libs/ezlic20.so",local=TRUE) Error in dyn.load(x, as.logical(local), as.logical(now)) : unable to load shared library '/usr/lib/R/library/POP.R/libs/ezlic20.so': libstdc++-libc6.2-2.so.3: cannot open shared object file: No such file or directory --------------------------------------------------------------------------------------------------------------------------------------------- In the lib directory there is also another library, for which I have a different error message using the dyn.load function (I have the same message using local=FALSE): --------------------------------------------------------------------------------------------------------------------------------------------- > dyn.load("/usr/lib/R/library/POP.R/libs/pop_BurSt.so") Error in dyn.load(x, as.logical(local), as.logical(now)) : unable to load shared library '/usr/lib/R/library/POP.R/libs/pop_BurSt.so': /usr/lib/R/library/POP.R/libs/pop_BurSt.so: undefined symbol: getChainedKeyId --------------------------------------------------------------------------------------------------------------------------------------------- My operating system is Ubuntu 6.10 - Edgy. Follow the answers to version and sessionInfo: -------------------------------------------------------------------------------------------------- > version _ platform i486-pc-linux-gnu arch i486 os linux-gnu system i486, linux-gnu status major 2 minor 4.1 year 2006 month 12 day 18 svn rev 40228 language R version.string R version 2.4.1 (2006-12-18) > sessionInfo() R version 2.4.1 (2006-12-18) i486-pc-linux-gnu locale: LC_CTYPE=en_US.UTF-8;LC_NUMERIC=C;LC_TIME=en_US.UTF-8;LC_COLLATE=en_US.UTF-8;LC_MONETARY=en_US.UTF-8;LC_MESSAGES=en_US.UTF-8;LC_PAPER=en_US.UTF-8;LC_NAME=C;LC_ADDRESS=C;LC_TELEPHONE=C;LC_MEASUREMENT=en_US.UTF-8;LC_IDENTIFICATION=C attached base packages: [1] "stats" "graphics" "grDevices" "utils" "datasets" "methods" [7] "base" -------------------------------------------------------------------------------------------------- Chiacchiera con i tuoi amici in tempo reale! http://it.yahoo.com/mail_it/foot/*http://it.messenger.yahoo.com
Some additional notes inserted below. Domenico Vistocco wrote:>Dear HelpeRs, >I am trying to use an thirdy-part library under Linux (the library is >developed >both for Windows and for Linux). > >I have tried different solutions (with the library developer) but we are >not able to >solve the problem. So I try to ask for your help in order to escape from >the full stop >where we are at the moment. > >The problem looks to depend on the dyn.load function (technical details >are below). > >Thanks a lot for your work (it is an invaluable resource). >Best, >domenico > >The library is called POP.R. I installed it but I have the following >error when >I try to load it: >--------------------------------------------------------------------------------------------------------------------------------------------- > > library(POP.R) >Error in dyn.load(x, as.logical(local), as.logical(now)) : > unable to load shared library >'/usr/lib/R/library/POP.R/libs/ezlic20.so': > libstdc++-libc6.2-2.so.3: cannot open shared object file: No such file >or directory >Error in library(POP.R) : .First.lib failed for 'POP.R' >--------------------------------------------------------------------------------------------------------------------------------------------- > >Nevertheless the file exists: >--------------------------------------------------------------------------------------------------------------------------------------------- > > file.exists("/usr/lib/R/library/POP.R/libs/ezlic20.so") >[1] TRUE >--------------------------------------------------------------------------------------------------------------------------------------------- > >I tried also directly using the dyn.load function on the command line >(without and with the local flag): >--------------------------------------------------------------------------------------------------------------------------------------------- > > dyn.load("/usr/lib/R/library/POP.R/libs/ezlic20.so",local=FALSE) >Error in dyn.load(x, as.logical(local), as.logical(now)) : > unable to load shared library >'/usr/lib/R/library/POP.R/libs/ezlic20.so': > libstdc++-libc6.2-2.so.3: cannot open shared object file: No such file >or directory > > dyn.load("/usr/lib/R/library/POP.R/libs/ezlic20.so",local=TRUE) >Error in dyn.load(x, as.logical(local), as.logical(now)) : > unable to load shared library >'/usr/lib/R/library/POP.R/libs/ezlic20.so': > libstdc++-libc6.2-2.so.3: cannot open shared object file: No such file >or directory > >We have seen that problems like this can arise if there is a mixture of 32-bit and 64-bit items. Everything here is definitely 32-bit.>--------------------------------------------------------------------------------------------------------------------------------------------- > >In the lib directory there is also another library, for which I have a >different error >message using the dyn.load function (I have the same message using >local=FALSE): >--------------------------------------------------------------------------------------------------------------------------------------------- > > dyn.load("/usr/lib/R/library/POP.R/libs/pop_BurSt.so") >Error in dyn.load(x, as.logical(local), as.logical(now)) : > unable to load shared library >'/usr/lib/R/library/POP.R/libs/pop_BurSt.so': > /usr/lib/R/library/POP.R/libs/pop_BurSt.so: undefined symbol: >getChainedKeyId > >This error message is actually good news -- it finds the file (sitting right next to the one it can't "find") and gets so far as to find a symbol that is in the first file. That is, this command appears like it would work if the first load worked.>--------------------------------------------------------------------------------------------------------------------------------------------- > >My operating system is Ubuntu 6.10 - Edgy. > >I'm not sure what versions of Linux other clients have (it's never been an issue before), but I know it works in Suse. Pat>Follow the answers to version and sessionInfo: >-------------------------------------------------------------------------------------------------- > > version > _ >platform i486-pc-linux-gnu >arch i486 >os linux-gnu >system i486, linux-gnu >status >major 2 >minor 4.1 >year 2006 >month 12 >day 18 >svn rev 40228 >language R >version.string R version 2.4.1 (2006-12-18) > > > sessionInfo() >R version 2.4.1 (2006-12-18) >i486-pc-linux-gnu > >locale: >LC_CTYPE=en_US.UTF-8;LC_NUMERIC=C;LC_TIME=en_US.UTF-8;LC_COLLATE=en_US.UTF-8;LC_MONETARY=en_US.UTF-8;LC_MESSAGES=en_US.UTF-8;LC_PAPER=en_US.UTF-8;LC_NAME=C;LC_ADDRESS=C;LC_TELEPHONE=C;LC_MEASUREMENT=en_US.UTF-8;LC_IDENTIFICATION=C > >attached base packages: >[1] "stats" "graphics" "grDevices" "utils" "datasets" "methods" >[7] "base" >-------------------------------------------------------------------------------------------------- > >Chiacchiera con i tuoi amici in tempo reale! > http://it.yahoo.com/mail_it/foot/*http://it.messenger.yahoo.com > >______________________________________________ >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 >and provide commented, minimal, self-contained, reproducible code. > > > >
On Fri, 2007-02-09 at 21:31 +0100, Domenico Vistocco wrote:> libstdc++-libc6.2-2.so.3: cannot open shared object file: No such file > or directory > Error in library(POP.R) : .First.lib failed for 'POP.R' > --------------------------------------------------------------------------------------------------------------------------------------------- > > Nevertheless the file exists: > --------------------------------------------------------------------------------------------------------------------------------------------- > > file.exists("/usr/lib/R/library/POP.R/libs/ezlic20.so")You're misreading the error message: libstdc++-libc6.2-2.so.3 is the file that doesn't exist. Its a rather ancient copy of libstdc++ from Red Hat 6.2, which almost certainly doesn't exist in a normal Ubuntu installation. It used to be in Fedora as part of the compat-libstdc++-296-2.96 package, but Fedora dropped it around FC-4. So, either, you should convince whomever compiled that library to recompile it against a modern version of Linux (without any compat-* libs installed), made in the last 5 years, or you could find an old copy of the Fedora Core 4 RPM, unpack the libraries from the rpm, put them in /usr/lib, and hope that is the only ancient library you need. Hooray for closed source, eh? ~spot