代码之家  ›  专栏  ›  技术社区  ›  Melissa Key

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

  •  0
  • Melissa Key  · 技术社区  · 7 年前

    我会为缺乏一个可复制的例子(然而)事先道歉-如果没有这个答案这不是一个简单的答案,我明天就做一个(尽管由于问题的性质,我不确定这有多容易)。

    首先,我的第一个RCPP代码项目正在运行!它的速度惊人,完全符合我的要求!感谢所有在这里帮助我的人,我很感激。

    我的下一个任务是将此添加到包中。我一直在用 R包 哈德利·威克姆整理我的包裹,所以我用 roxygen2 devtools::document() 关于文件和一般检查,按照那本书。我翻到了编译代码一章。( http://r-pkgs.had.co.nz/src.html ,以便于参考),并实现这些步骤。明确地:

    • 我跑 devtools::use_rcpp() 设置包以使用RCPP。
    • 我在包中的另一个函数中添加了适当的行。
    • 我将函数为的文件复制到新的 src 目录。

    然后我试图更新文档( devtools::文档() ,我得到以下错误:

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

    我一直在搜索StackExchange,寻找类似的东西,看到一个旧的帖子,其中一条评论是必要的 // [[Rcpp::depends(RcppArmadillo)]] 在顶部( Rcpp R sample equivalent from a 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和所有软件包,所以所有软件都使用最新版本。(我还尝试了Github版本的 devtools ,结果相同)。 有什么关于为什么 sample.h 无法使用找到扩展名 document() ?

    事先谢谢!

    1 回复  |  直到 7 年前
        1
  •  4
  •   Ralf Stubner    7 年前

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

    Rcpp::sourceCpp() RcppArmadillo LinkingTo DESCRIPTION

    LinkingTo: Rcpp, RcppArmadillo
    

    RcppArmadillo::RcppArmadillo.package.skeleton()
    

    推荐文章