首页 > 解决方案 > 带有 RcppArmadillo 和 c++11 的包不导出函数

问题描述

如果我获取以下代码(*.cpp 文件)一切正常,我可以在 R 中使用该函数:

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

#include <RcppArmadillo.h>


// [[Rcpp::export]]
arma::vec foo() {
 arma::vec x = { 1.1, 2.2 };
 return x;
}

// [[Rcpp::export]]
int useAuto() {
  auto val = 42;
 return val;
}

但是,如果我在包中使用它们并构建包,如果我尝试使用 R 中的函数,则会收到以下错误消息:

Error in .Call(<pointer: (nil)>) : NULL value passed as symbol address**

这似乎是 RcppArmadillo 的一个问题,因为如果我删除所有 RcppArmadillo 功能并仅使用 Rcpp,它一切正常。

我在 CXX_STD = CXX11 中包含了一个 src/Makevars.* ,但这对解决这个问题没有帮助。

标签: rc++11rcpp

解决方案


推荐阅读