R: Error in dyn.load(file, DLLpath = DLLpath, ...)

R: Error in dyn.load(file, DLLpath = DLLpath, ...)

本文关键字:DLLpath file load Error in dyn      更新时间:2023-10-16

我现在已经在办公室的台式电脑上做了一段时间的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:安装UBUNTU - dyn.load(file, DLLpath = DLLpath,…)中的错误:无法加载共享对象收到消息,无法加载共享对象状态。所以当R开始

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

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

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

.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

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

你可以通过为笔记本电脑重新编译R来修复这个问题,或者使用Ubuntu R包。例如http://packages.ubuntu.com/xenial/r-base

适用于Mac/Linux

  1. 命令 + 空格
  2. 输入终端,按回车键打开终端。在终端粘贴此open /Library/Frameworks/R.framework/Resources/library并按enter。打开一个查找器窗口,里面有很多文件夹
  3. 每个文件夹匹配一个已安装的R包。
  4. 删除它们,关闭RStudio,重新打开RStudio,用install.packages("dplyr") etc安装你需要的包

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