我已经设法Rcpp.package.skeleton在R提示符下通过以下命令在Windows中安装 -
Rcpp.package.skeleton("mypackage")
system("R CMD build mypackage")
system("R CMD INSTALL mypackage")
library(mypackage)
Run Code Online (Sandbox Code Playgroud)
这创造了mypackage.dll.但是当我执行以下命令时 -
rcpp_hello_world <- function(){ .Call( "rcpp_hello_world", PACKAGE = "mypackage")}
rcpp_hello_world()
Run Code Online (Sandbox Code Playgroud)
我收到以下错误:
Error in .Call("rcpp_hello_world", PACKAGE = "mypackage") :
"rcpp_hello_world" not available for .Call() for package "mypackage"
Run Code Online (Sandbox Code Playgroud)
我跑了sessionInfo(),我得到以下内容:
attached base packages:
[1] tools stats graphics grDevices utils datasets methods base
other attached packages:
[1] mypackage_1.0 inline_0.3.13 Rcpp_0.11.1
Run Code Online (Sandbox Code Playgroud)
说我的新mypackage在那里.
我有什么进一步的检查可以看看发生了什么?有任何想法吗?
Joe*_*eng 32
FWIW,我在使用Rcpp改造现有的R-only软件包时遇到了类似的错误,但问题是遗漏useDynLib(mypackage)了NAMESPACE.
该软件包在每次发布之前都经过了广泛的测试,包括在使用 Windows 的 Win-builder 上进行的测试。回归测试甚至包括通过调用package.skeleton().
它也在发布后由 CRAN 重建。很多人都用它。
对于所有这些人来说,测试都是合适的,当long long不能使用时,就#define放弃它。
现在,您坚持以非标准方式构建:据我所知,没有消息来源建议R CMD INSTALL通过system(). 我怀疑你只是遇到了$PATH不幸并找到了另一个错误的g++版本。
我建议按照文档的建议进行操作并运行
R CMD INSTALL mypackage*tar.gz
Run Code Online (Sandbox Code Playgroud)
在提示中cmd.exe。
| 归档时间: |
|
| 查看次数: |
5329 次 |
| 最近记录: |