【问题标题】:Is it possible to create a sharable package from a Rcpp function without other users needing Rcpp?是否可以在其他用户不需要 Rcpp 的情况下从 Rcpp 函数创建可共享包?
【发布时间】:2013-09-04 19:16:30
【问题描述】:

我使用cppFunction 创建了一个功能,它按预期工作,现在我希望我的同事能够使用它。是否可以制作一个编译我的 cpp 代码的包,以便该包的其他用户不需要Rcpp?似乎这里的指南http://adv-r.had.co.nz/Rcpp.html#using-rcpp-in-a-package 和这里的http://cran.r-project.org/web/packages/Rcpp/vignettes/Rcpp-package.pdf 创建了将 Rcpp 作为依赖项的包。我是否正确阅读了那些我想做的事情不容易完成的指南?

【问题讨论】:

    标签: r rcpp


    【解决方案1】:

    不,您忽略了这样一个事实,即来自 Rcpp 的代码,就像来自 R 本身的代码一样,是通过所谓的共享库加载的。

    所以为了运行使用 Rcpp 的代码,你需要安装 Rcpp。

    这就是为什么包(再次)获胜的原因。将您的代码包装在一个包中,让您的包依赖于 Rcpp,然后您(基本上)就完成了。

    【讨论】:

    • 我对此的反感是让每个人都为Rcpp 安装Rtools 以在windoze 上工作。哦,好的,谢谢你的回复。
    • 对您来说好消息:您不需要这样做,因为您的 Windows 用户 只需从 CRAN 安装 Rcpp zip 文件(到在 Windoze 上提供 Rcpp dll)。但是,您需要安装 Rtools 来为 them 提供带有 its dll 的软件包的二进制文件。有意义吗?
    • @DeanMacGregor 但是安装 Rtools 非常简单 - 只需下载并运行安装程序
    • @hadley:来吧,我们都知道它会迷惑很多人。所以对其他人来说并不容易。此外,您在这里忽略了我的观点,即它甚至不需要,即使 OP 错误地声称并非如此。
    • 我认为最大的问题是很多 Windows 用户不了解 PATH 是什么以及为什么它很重要。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2014-06-25
    • 2013-12-26
    • 2021-09-18
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多