[英]fatal error: RcppArmadilloExtensions/sample.h: No such file or directory
由于缺少可重复的示例,我将提前道歉(但)-如果没有这个示例这不是一个简单的答案,我明天再做一个工作(尽管由于问题的性质,我不确定如何会很容易)。
首先,我有我的第一个Rcpp代码项目! 它的速度惊人的快,并且确实满足了我的需要! 感谢所有在这里帮助过我的人,对此深表感谢。
我的下一个任务是将此添加到包中。 我一直在使用Hadley Wickham的R软件包来组合我的软件包,因此在那本书之后,我正在使用roxygen2
和devtools::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;
(我看不到任何错误,并且可以在包外部进行编译)。
我的描述文件专门导入Rcpp
和RcppArmadillo
。 这是相关的部分:
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
的头文件设置必要的编译器标志。 这在包装中没有相同的效果。 为了有这样一个包,你将需要包括RcppArmadillo
在LinkingTo
在您的DESCRIPTION
:
LinkingTo: Rcpp, RcppArmadillo
顺便说一句,正确构造结构的简单方法是使用
RcppArmadillo::RcppArmadillo.package.skeleton()
用于设置程序包框架。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.