R:dyn.load中的错误(文件,DLLpath = DLLpath,...)

时间:2016-08-14 15:34:57

标签: c++ r ubuntu g++

我已经在我办公室台式电脑的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

4 个答案:

答案 0 :(得分:1)

.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

希望这会有所帮助......

答案 1 :(得分:0)

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

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

答案 2 :(得分:0)

我在Ubuntu上的rgdal有一个类似的问题。重新安装该软件包足以使它再次运行。

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

答案 3 :(得分:0)

对于Mac / Linux

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

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