【发布时间】:2014-05-28 16:31:13
【问题描述】:
我一直在尝试在 Windows Server 2008 R2 平台上加载最新版本的 Rcpp 包(GIT 版本 XXXX)。当我这样做时,我收到以下错误:
> library(Rcpp)
Error : .onLoad failed in load Namespace() for 'Rcpp', details:
call: new_dummyObject(.dummyInstancePointer)
error: object 'class__dummyInstance' not found
In addition: Warning message:
package 'Rcpp' was built under R version 3.0.3
Error: package or namespace load failed for 'Rcpp'
我已经在GitHub 上与其中一位软件包作者讨论过这个问题,我们确定这很可能是本地问题。 (经过更仔细的调查后说,该帖子中的问题与我得到的问题并不完全相同)我能够使用 Windows Server 2003 使用 R 版本 3.0.1 和 3.0.3 加载相同的包。为方便起见,我在此处处理链接帖子的部分内容。我生成包的过程如下:
- 从 Github 下载了最新的主代码(应提交 5b510ed)
- 在临时目录中解压 zip 文件并将“Rcpp-master”重命名为“Rcpp”
- 已安装 Rtools 3.1 版
- 确保 RTools bin 和相关的 gcc bin 目录位于我路径的开头
- 使用命令“R CMD BUILD Rcpp”生成Rcpp_0.11.1.2.tar.gz文件
- 使用命令“R CMD INSTALL --build --compile-both Rcpp_0.11.1.2.tar.gz 生成Rcpp_0.11.1.2.zip
- 将生成的 zip 存档复制到 Windows Server 2008 机器
- 使用R原生安装本地包安装Rcpp包
根据包作者的建议,我查看了工作和不工作 R 版本的 .libPaths() 输出。在这两种情况下,输出完全相同:
[1] "\\\\vnxserver/home/MYACCT/My Documents/R/win-library/3.0"
[2] "C:/Program Files/R/R-3.0.2/library"
我真的不知道在调试链中接下来要尝试什么,我希望一些 SO 社区可以为我指明正确的方向。 (这就是为什么我在这里重新发布)。欢迎任何cmets。
虽然我在前面那段发过,但可能不太清楚GitHub上的相关讨论在https://github.com/RcppCore/Rcpp/issues/147
【问题讨论】:
-
其他有助于确认的事情:R 'native install' 是什么版本?您确定要安装在
.libPaths()的输出中表示的库中吗?R实际上指向该系统的哪个位置?它是什么版本?R CMD INSTALL说它安装在哪个库中? -
你已经问了很多很好的后续问题。我已验证该库实际上已安装在第一个 .libPaths() 输出位置。经过一些进一步的工作,我想我可能已经发现了这个问题。系统当前已设置,因此我无法从我的主目录(以及下面的所有目录)执行二进制应用程序。我相信 Windows 不允许正确加载导致问题的 dll 文件。希望我会在星期一对此进行调查并得到答案。如果这是问题所在,那么 R 应该给我一个警告。