我想同时使用RcppGSL和RcppArmadillo,是否可以在cxxfunction(内联CRAN包)中使用多个插件? 我找到了办法:
plug.ArmaGSL <- Rcpp:::Rcpp.plugin.maker(include.before='#include <RcppArmadillo.h>
#include <RcppGSL.h>
#include <gsl/gsl_rng.h>',
Depends=c("RcppGSL", "RcppArmadillo", "Rcpp"),
LinkingTo=c("RcppGSL", "RcppArmadillo", "Rcpp"),
libs="-lgsl -larmadillo")
registerPlugin("RcppArmaGSL", plug.ArmaGSL)
foo <- cxxfunction(signature(sM="numeric"), body=bodytxt, inc=inctxt, plugin="RcppArmaGSL")
但似乎并不那么直观。
答案 0 :(得分:3)
一种简单的方法是从现有的插件开始,例如:
require(inline)
require(RcppArmadillo)
foo <- getPlugin("RcppArmadillo" )
然后搞乱foo,并将其用作cxxfunction调用中的设置参数。更多关于?cxxfunction的内容。
答案 1 :(得分:2)
好问题。 (在rcpp-devel上会更好。)
我认为您需要编写自己的组合插件,有关详细信息,请参阅问题3.6“如何编写Rcpp-FAQ插图的内联包插件”。