【问题标题】:Error in inDL(x, as.logical(local), as.logical(now), ...) : unable to load shared objectinDL(x, as.logical(local), as.logical(now), ...) 中的错误:无法加载共享对象
【发布时间】:2018-09-03 13:12:09
【问题描述】:

我在尝试附加包tidyselect 和尝试调用tidyselect::any_function 时遇到此错误。

错误发生在Rstudio 或类似的命令行中,在RStudio 中,只要我输入:tidyselect:: 就会触发它,尽管?tidyselect:: 工作正常,我可以调用?tidyselect::any_function 的帮助。

这也有效:

packageVersion("tidyselect") # [1] ‘0.2.4

它曾经可以工作,我不明白发生了什么变化,我只知道包rjava已经安装,管理员可能也改变了一些东西。

首先弹出一个窗口说:

程序入口点 R_ContinueUnwind 不能位于动态链接库 R.dll 中

然后在控制台显示一个错误:

inDL(x, as.logical(local), as.logical(now), ...) 中的错误:

无法加载共享对象'//edited_UNC_path.com/edited_pa​​th/tidyselect/libs/x64/tidyselect.dll':

LoadLibrary 失败:找不到指定的过程。

dll 文件存在:

file.exists('//edited_UNC_path.com/edited_path/tidyselect/libs/x64/tidyselect.dll') # [1] TRUE

配置:

sessionInfo()
R version 3.3.1 (2016-06-21)
Platform: x86_64-w64-mingw32/x64 (64-bit)
Running under: Windows 7 x64 (build 7601) Service Pack 1

locale:
[1] LC_COLLATE=English_United States.1252  LC_CTYPE=English_United States.1252   
[3] LC_MONETARY=English_United States.1252 LC_NUMERIC=C                          
[5] LC_TIME=English_United States.1252    

attached base packages:
[1] stats     graphics  grDevices utils     datasets  methods   base     

loaded via a namespace (and not attached):
[1] tools_3.3.1

知道如何解决这个问题吗?

【问题讨论】:

  • 我在加载我创建的 DLL 文件时遇到了类似的错误。我重新启动了 R,这解决了我的问题

标签: r dll unc tidyselect


【解决方案1】:

我不知道为什么会发生此事件,因为我目前面临同样的问题。无论如何,我可以解释你的解决方案。

32 位与 64 位

您的系统是 64 位的,如您的 sessionInfo() 所示。 i386 架构适用于较旧的系统,采用 32 位(它们只能处理有限数量的内存,因为它们使用 32 位内存地址,而今天的 64 位系统实际上是无限的)。

在 R 中发生了什么

R 中的经典安装是多架构的“multiarch”,即 32 位和 64 位。在 64 位系统中,构建 32 位软件没有问题。但是,您可能没有为这两种架构安装所有依赖项(例如 C++ 库)。您的 32 位安装显然存在问题。然后用INSTALL_opts="--no-multiarch"安装包只安装64位版本(你需要的那个),没有问题。

【讨论】:

    【解决方案2】:

    通过重新安装tidyselect 解决了这个问题:

    install.packages("tidyselect",INSTALL_opts="--no-multiarch")
    

    (尽管可以使用install.packages("tidyselect") 安装软件包而不会出错。

    This answer 向我指出了解决方案(尽管问题完全不同)。

    看来rjava确实有问题。

    引用链接的答案:

    解决方案是使用简单地忘记 i386 架构的安装选项。 (也适用于不来自 CRAN 的 drat 库和包

    不过对我来说都是中文,?utils::install.packages 也无济于事,我很乐意投票/接受一个解释正在发生的事情的答案。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2016-08-16
      • 2012-07-09
      • 1970-01-01
      • 2018-09-17
      • 1970-01-01
      • 2015-09-30
      相关资源
      最近更新 更多