【问题标题】:R: Error in dyn.load(file, DLLpath = DLLpath, ...)R:dyn.load 中的错误(文件,DLLpath = DLLpath,...)
【发布时间】:2020-03-23 21:08:41
【问题描述】:

我现在在办公室的台式计算机上从事 R 项目已经有一段时间了,但在旅行时需要随身携带这些脚本。我将所有内容复制到笔记本电脑中,并对代码进行了一些更改。唉,在尝试编译时(按照我在台式计算机中使用的完全相同的程序),出现以下错误:

$ R CMD INSTALL --no-multiarch --with-keep.source coala
* installing to library ‘/home/my_pc/R/x86_64-pc-linux-gnu-library/3.3’
* installing *source* package ‘coala’ ...
** libs
make: Nothing to be done for `all'.
installing to /home/my_pc/R/x86_64-pc-linux-gnu-library/3.3/coala/libs
** R
** inst
** preparing package for lazy loading
** help
*** installing help indices
** building package indices
** installing vignettes
** testing if installed package can be loaded
Error in dyn.load(file, DLLpath = DLLpath, ...) : 
unable to load shared object '/home/my_pc/R/x86_64-pc-linux-gnu-library/3.3/coala/libs/coala.so':
/home/my_pc/R/x86_64-pc-linux-gnu-library/3.3/coala/libs/coala.so: undefined symbol: _ZSt24__throw_out_of_range_fmtPKcz
Error: loading failed
Execution halted
ERROR: loading failed
* removing ‘/home/my_pc/R/x86_64-pc-linux-gnu-library/3.3/coala’
* restoring previous ‘/home/my_pc/R/x86_64-pc-linux-gnu-library/3.3/coala’

两台计算机都有相同的 Ubuntu,但 R 版本不同。另外,我不得不提一下,我同时在两个库中工作,并且随附的库更新没有问题,这使得这个错误消息更加令人费解。我检查了可能与此问题相关的答案,但无法弄清楚如何应用他们的解决方案:

R: error installing packages UBUNTU - Error in dyn.load(file, DLLpath = DLLpath, ...) : unable to load shared object Got message unable to load shared object stats.so when R starts

有没有办法解决这个问题?可能是哪个原因?什么是未定义符号_ZSt24__throw_out_of_range_fmtPKcz

【问题讨论】:

标签: c++ r ubuntu g++


【解决方案1】:

我在 Ubuntu 上遇到了与 rgdal 类似的问题。重新安装软件包足以让它再次工作。

$ sudo R
> install.packages("rgdal")
> quit()
$ exit

【讨论】:

    【解决方案2】:

    .libPaths() 给你的输出是什么?

    我今天在使用最新更新时遇到了同样的问题(R 3.3.1 for MacOS X)。我的 R 安装在更新后似乎崩溃了。我的解决方案只是从文件系统中删除 lib 目录并重新安装 R:

    rm -rf /Users/johann/Library/R/3.3/library
    sudo rm -rf Library/Frameworks/R.framework/Versions/3.3/Resources/library
    

    希望这会有所帮助...

    【讨论】:

    • 这个解决方案在 GNU/Linux 系统上也适用于我
    【解决方案3】:

    问题在于与您的 g++ 标准库的链接。不同版本的 Ubuntu 有不同版本的 g++ stdlib。您不能总是将二进制文件从一个复制到另一个。

    您可以通过为笔记本电脑重新编译 R 或使用 Ubuntu R 软件包来解决此问题。例如http://packages.ubuntu.com/xenial/r-base

    【讨论】:

      【解决方案4】:

      适用于 Mac / Linux

      1. 命令 + 空格
      2. 键入终端并按回车键打开终端。在终端中粘贴此 open /Library/Frameworks/R.framework/Resources/library 并按 Enter。应该会打开一个查找器窗口,其中包含很多文件夹
      3. 每个文件夹都匹配一个已安装的 R 包。
      4. 全部删除,关闭 RStudio,重新打开 RStudio 并使用 install.packages("dplyr") 等安装您需要的软件包

      在我这样做之后,问题就消失了

      【讨论】:

      • 这将删除你曾经在 R 中下载的每个包
      • @DanielFreeman 这就是重点。再次安装它们为我解决了。
      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2018-12-19
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2020-10-22
      相关资源
      最近更新 更多