проблема с использованием армы пространства имен при сборке произвольного пакета RcppArmadillo - PullRequest
0 голосов
/ 31 августа 2018

Я пытаюсь скомпилировать произвольный пакет, который в основном написан на RcppArmadillo. Ниже приведен пример моего исходного кода:

// [[Rcpp::interface(r,cpp)]]
#include <RcppArmadillo.h>
// [[Rcpp::depends(RcppArmadillo)]]
using namespace Rcpp;
using namespace arma;

//' test function
//'
//' @param kap, a scalar value
//' @param m, an integer
//' @return a scalar value
//' @export
// [[Rcpp::export]]
double test_function(double kap, uword m){
       return kap * m;
}

Я использую следующую команду для создания каркаса пакета:

RcppArmadillo.package.skeleton(name = "test")

Затем я добавляю файл исходного кода и атрибуты компиляции:

compileAttributes("test")

При этом создается файл RcppExport.cpp, по некоторым причинам, хотя я и использовал строку «использование пространства имен arma» в исходном исходном файле, он не переносится в файл RcppExport.cpp и не находится в заголовочном файле. создан в связи с Rcpp :: interface. Поэтому я добавляю эту строку в файл RcppExport.cpp и RcppExport.h самостоятельно. Тогда я пытаюсь сделать roxygenise:

roxygen::roxygenise("test")

и я получаю сообщение об ошибке:

'uword' has not been declared

Я в замешательстве, потому что я четко обозначил «использование пространства имен arma»; во всех необходимых файлах, но roxygen, похоже, не понимает этого ... Есть ли какой-то другой файл, где я должен был объявить arma пространства имен? Или я должен использовать arma :: uword в моем исходном файле?

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...