c++ R:动态加载时出错(文件,DLL路径= DLL路径,...)

e5nszbig  于 2023-01-15  发布在  其他
关注(0)|答案(4)|浏览(163)

我在办公室的台式电脑上做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 objectGot message unable to load shared object stats.so when R starts
有什么办法可以解决这个问题吗?可能的原因是什么?未定义的符号_ZSt24__throw_out_of_range_fmtPKcz是什么?

tpgth1q7

tpgth1q71#

我在Ubuntu上的rgdal也遇到过类似的问题,重新安装这个软件包就足以让它重新工作了。

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

erhoui1w2#

.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

希望这能帮上忙...

mwecs4sa

mwecs4sa3#

问题是与你的g++ stdlib的链接。不同版本的Ubuntu有不同版本的g++ stdlib。你不能总是把二进制文件从一个复制到另一个。
您可以通过为笔记本电脑重新编译R或使用Ubuntu R包来修复此问题。例如http://packages.ubuntu.com/xenial/r-base

zu0ti5jz

zu0ti5jz4#

适用于Mac / Linux

1.按命令+空格键
1.键入terminal并按回车键打开terminal。在terminal中粘贴此open /Library/Frameworks/R.framework/Resources/library并按回车键。应打开一个带有许多文件夹的查找窗口
1.每个文件夹都与一个已安装的R包相匹配。
1.将它们全部删除,关闭RStudio,重新打开RStudio,然后使用install.packages("dplyr")等安装所需的包
在我这样做之后,问题就消失了

相关问题