为 rcpp 包生成 roxygen 文档不起作用
Generating roxygen documentation for rcpp package do not work
我使用 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()
- Updated R/RcppExports.R
==> devtools::document(roclets=c('rd', 'collate', 'namespace'))
Updating testRcpp1 documentation First time using roxygen2. Upgrading
automatically... Loading testRcpp1 Warning: The existing 'NAMESPACE'
file was not generated by roxygen2, and will not be overwritten.
Documentation completed
==> R CMD INSTALL
...
我查看了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
问题似乎出在您用于评论的字符上。您当前的代码
//’ Testing documentation with Rcpp
//’
//’ @param x Character vector for testing
//’ @param y Numeric vector for testing more
使用 ’
(即 "right single quotation mark" 字符:代码 146 或 0x92)而不是 '
(即 "apostrophe" 字符:代码 39 或 0x27) .解析器不寻找右手引号,只寻找撇号。所以只需更改为
//' Testing documentation with Rcpp
//'
//' @param x Character vector for testing
//' @param y Numeric vector for testing more
我使用 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()
- Updated R/RcppExports.R
==> devtools::document(roclets=c('rd', 'collate', 'namespace'))
Updating testRcpp1 documentation First time using roxygen2. Upgrading automatically... Loading testRcpp1 Warning: The existing 'NAMESPACE' file was not generated by roxygen2, and will not be overwritten. Documentation completed
==> R CMD INSTALL ...
我查看了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
问题似乎出在您用于评论的字符上。您当前的代码
//’ Testing documentation with Rcpp
//’
//’ @param x Character vector for testing
//’ @param y Numeric vector for testing more
使用 ’
(即 "right single quotation mark" 字符:代码 146 或 0x92)而不是 '
(即 "apostrophe" 字符:代码 39 或 0x27) .解析器不寻找右手引号,只寻找撇号。所以只需更改为
//' Testing documentation with Rcpp
//'
//' @param x Character vector for testing
//' @param y Numeric vector for testing more