【问题标题】:Generating roxygen documentation for rcpp package do not work [closed]为 rcpp 包生成 roxygen 文档不起作用[关闭]
【发布时间】:2018-11-28 18:34:05
【问题描述】:

我使用 Rcpp::Rcpp.package.skeleton() 或使用 RStudio 生成一个 Rcpp 包,使用 roxygen2 文档进行测试,并将文件夹 src 中生成的测试 cpp 函数更改为:

#include <Rcpp.h>
using namespace Rcpp;

//’ Testing documentation with Rcpp
//’
//’ @param x        Character vector for testing  
//’ @param y        Numeric vector for testing more 
//’
//’ @return           List of x and y 
//’
//’ @export
// [[Rcpp::export]]
List rcpp_hello_world(CharacterVector x,NumericVector y) {

  List z            = List::create( x, y ) ;

  return z ;
}

我从man中删除了默认的.rd文件,并根据roxygen的要求将Encoding: UTF-8添加到DESCRIPTION文件中。

然后我在 Rstudio 上运行 ctrl-shift-b(安装并重启)

==> Rcpp::compileAttributes()

  • 更新了 R/RcppExports.R

==> devtools::document(roclets=c('rd', 'collat​​e', 'namespace'))

更新 testRcpp1 文档 第一次使用 roxygen2。升级 自动...正在加载 testRcpp1 警告:现有的 'NAMESPACE' 文件不是由 roxygen2 生成的,不会被覆盖。 文档完成

==> R CMD 安装 ...

我查看了man文件夹,没有生成rd文件,找不到我做错了什么。

sessionInfo() 是:

R version 3.5.1 (2018-07-02)
Platform: x86_64-pc-linux-gnu (64-bit)
Running under: Ubuntu 16.04.5 LTS

Matrix products: default
BLAS: /usr/lib/libblas/libblas.so.3.6.0
LAPACK: /usr/lib/lapack/liblapack.so.3.6.0

locale:
 [1] LC_CTYPE=en_US.UTF-8       LC_NUMERIC=C               LC_TIME=es_AR.UTF-8        LC_COLLATE=en_US.UTF-8    
 [5] LC_MONETARY=es_AR.UTF-8    LC_MESSAGES=en_US.UTF-8    LC_PAPER=es_AR.UTF-8       LC_NAME=C                 
 [9] LC_ADDRESS=C               LC_TELEPHONE=C             LC_MEASUREMENT=es_AR.UTF-8 LC_IDENTIFICATION=C       

attached base packages:
[1] stats     graphics  grDevices utils     datasets  methods   base     

other attached packages:
[1] Rcpp_1.0.0    testRcpp1_1.0

loaded via a namespace (and not attached):
 [1] crayon_1.3.4      withr_2.1.2       rprojroot_1.3-2   assertthat_0.2.0  R6_2.2.2          backports_1.1.2  
 [7] magrittr_1.5      cli_1.0.0         rlang_0.2.1       rstudioapi_0.8    testthat_2.0.1    desc_1.2.0       
[13] tools_3.5.1       pkgload_1.0.2     yaml_2.1.19       compiler_3.5.1    sessioninfo_1.1.1

【问题讨论】:

  • ^^ +1 并考虑删除NAMESPACE 文件或将# Generated by roxygen2: do not edit by hand 粘贴到文件的最顶部
  • 是的@MrFlick 你是对的!!!多么愚蠢的事情,我注意到了,但认为这是必需的......解决了!
  • 我仍然建议删除该问题。这是一个使用roxygen2 的简单PBKAC。我也取消了rcpp 标签。

标签: r documentation roxygen2


【解决方案1】:

问题似乎出在您用于 cmets 的字符上。您当前的代码

//’ Testing documentation with Rcpp
//’
//’ @param x        Character vector for testing  
//’ @param y        Numeric vector for testing more 

使用 (即“右单引号”字符:代码 146 或 0x92)而不是 '(即“撇号”字符:代码 39 或 0x27)。解析器不查找右手引号,只查找撇号。所以改成

//' Testing documentation with Rcpp
//'
//' @param x        Character vector for testing  
//' @param y        Numeric vector for testing more 

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2012-10-02
    • 1970-01-01
    • 2012-10-10
    • 2018-09-27
    • 1970-01-01
    • 2012-10-31
    相关资源
    最近更新 更多