繁体   English   中英

致命错误:RcppArmadilloExtensions / sample.h:没有此类文件或目录

[英]fatal error: RcppArmadilloExtensions/sample.h: No such file or directory

由于缺少可重复的示例,我将提前道歉(但)-如果没有这个示例这不是一个简单的答案,我明天再做一个工作(尽管由于问题的性质,我不确定如何会很容易)。

首先,我有我的第一个Rcpp代码项目! 它的速度惊人的快,并且确实满足了我的需要! 感谢所有在这里帮助过我的人,对此深表感谢。

我的下一个任务是将此添加到包中。 我一直在使用Hadley Wickham的R软件包来组合我的软件包,因此在那本书之后,我正在使用roxygen2devtools::document()进行文档编制和常规检查。 我转到了有关编译代码的章节( http://r-pkgs.had.co.nz/src.html ,以方便参考),并实现了这些步骤。 特别:

  • 我运行devtools::use_rcpp()设置软件包以使用Rcpp。
  • 我在程序包的另一个函数中添加了适当的行。
  • 我将带有函数的文件复制到新的src目录中。

然后,我尝试更新文档( devtools::document() ),并且出现以下错误:

simulate_mean.cpp:2:44: fatal error: RcppArmadilloExtensions/sample.h: No such file or directory
 #include <RcppArmadilloExtensions/sample.h>
                                            ^

我一直在寻找// [[Rcpp::depends(RcppArmadillo)]]类的东西,并且看到一则旧文章,其中的一条评论是顶部// [[Rcpp::depends(RcppArmadillo)]]Rcpp R示例等效于NumericVector ) 。 这对我来说不是问题-该行在正确的位置,没有多余的空间(我在stackexchange上发现的另一个问题)。

文件的前几行如下所示:

#include <RcppArmadilloExtensions/sample.h>
// [[Rcpp::depends(RcppArmadillo)]]

using namespace Rcpp;

(我看不到任何错误,并且可以在包外部进行编译)。

我的描述文件专门导入RcppRcppArmadillo 这是相关的部分:

Imports:
    dplyr(>= 0.7.4),
    purrr (>= 0.2.4),
    Rcpp (>= 0.12.17),
    RcppArmadillo (>= 0.8.600.0.0)
Suggests: mvtnorm (>= 1.0-6),
    testthat
Encoding: UTF-8
LazyData: true
RoxygenNote: 6.0.1
License: MIT + file LICENSE
LinkingTo: Rcpp

作为疑难解答的一部分,我已经更新了R和所有软件包,因此所有内容都使用最新版本。 (我也尝试了devtools的github版本,结果相同)。 关于为什么无法使用document()找到sample.h扩展的任何想法?

提前致谢!

在您的C ++文件中

 // [[Rcpp::depends(RcppArmadillo)]]

对于Rcpp::sourceCpp()RcppArmadillo要找到的RcppArmadillo的头文件设置必要的编译器标志。 这在包装中没有相同的效果。 为了有这样一个包,你将需要包括RcppArmadilloLinkingTo在您的DESCRIPTION

LinkingTo: Rcpp, RcppArmadillo

顺便说一句,正确构造结构的简单方法是使用

RcppArmadillo::RcppArmadillo.package.skeleton()

用于设置程序包框架。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM