Похоже, проблема связана с умножением матриц с использованием оператора * в Armadillo, поскольку сценарии без этой операции компилируются успешно.
Мой файл Makevars.win содержит:
PKG_LIBS = -L/C:/OpenBLAS/lib -lopenblas
PKG_CPPFLAGS = -I /C:/OpenBLAS/include
Для успешно выполненных сценариев sourceCpp возвращает:
Код: Выделить всё
> sourceCpp("./SpatialEffect/src/calculate_tau.cpp",verbose=1)
Generated extern "C" functions
--------------------------------------------------------
#include
#ifdef RCPP_USE_GLOBAL_ROSTREAM
Rcpp::Rostream& Rcpp::Rcout = Rcpp::Rcpp_cout_get();
Rcpp::Rostream& Rcpp::Rcerr = Rcpp::Rcpp_cerr_get();
#endif
// calculate_tau
Rcpp::List calculate_tau(arma::mat Y, arma::mat Zdata);
RcppExport SEXP sourceCpp_1_calculate_tau(SEXP YSEXP, SEXP ZdataSEXP) {
BEGIN_RCPP
Rcpp::RObject rcpp_result_gen;
Rcpp::RNGScope rcpp_rngScope_gen;
Rcpp::traits::input_parameter< arma::mat >::type Y(YSEXP);
Rcpp::traits::input_parameter< arma::mat >::type Zdata(ZdataSEXP);
rcpp_result_gen = Rcpp::wrap(calculate_tau(Y, Zdata));
return rcpp_result_gen;
END_RCPP
}
Generated R functions
-------------------------------------------------------
`.sourceCpp_1_DLLInfo` ::type d(dSEXP);
Rcpp::traits::input_parameter< double >::type sh(shSEXP);
Rcpp::traits::input_parameter< double >::type sc(scSEXP);
Rcpp::traits::input_parameter< double >::type a(aSEXP);
rcpp_result_gen = Rcpp::wrap(nonmonoeffect_c(d, sh, sc, a));
return rcpp_result_gen;
END_RCPP
}
// effect_nonmo1
Rcpp::List effect_nonmo1(arma::colvec Y0, NumericMatrix dist, arma::mat Zdata, arma::colvec alpha, double effect, double sh, double sc, double a);
RcppExport SEXP sourceCpp_3_effect_nonmo1(SEXP Y0SEXP, SEXP distSEXP, SEXP ZdataSEXP, SEXP alphaSEXP, SEXP effectSEXP, SEXP shSEXP, SEXP scSEXP, SEXP aSEXP) {
BEGIN_RCPP
Rcpp::RObject rcpp_result_gen;
Rcpp::RNGScope rcpp_rngScope_gen;
Rcpp::traits::input_parameter< arma::colvec >::type Y0(Y0SEXP);
Rcpp::traits::input_parameter< NumericMatrix >::type dist(distSEXP);
Rcpp::traits::input_parameter< arma::mat >::type Zdata(ZdataSEXP);
Rcpp::traits::input_parameter< arma::colvec >::type alpha(alphaSEXP);
Rcpp::traits::input_parameter< double >::type effect(effectSEXP);
Rcpp::traits::input_parameter< double >::type sh(shSEXP);
Rcpp::traits::input_parameter< double >::type sc(scSEXP);
Rcpp::traits::input_parameter< double >::type a(aSEXP);
rcpp_result_gen = Rcpp::wrap(effect_nonmo1(Y0, dist, Zdata, alpha, effect, sh, sc, a));
return rcpp_result_gen;
END_RCPP
}
Generated R functions
-------------------------------------------------------
`.sourceCpp_3_DLLInfo`
Подробнее здесь: [url]https://stackoverflow.com/questions/78498664/errors-encountered-when-linking-openblas-to-rcpp[/url]
Мобильная версия