【发布时间】:2017-08-27 19:06:49
【问题描述】:
我正在编写一个包,其中包含一些从 RcppArmadillo 调用 RcppArmadillo::sample 的函数。 但是我在编译时遇到了以下错误。
在 Citrus.cpp:2 包含的文件中: ./R/x86_64-unknown-linux-gnu-library/3.0/RcppArmadillo/include/RcppArmadilloExtensions/sample.h:在函数'T Rcpp::RcppArmadillo::sample(const T&, int, bool, Rcpp::NumericVector) [与 T = arma::subview_col]': Citrus.cpp:241:从这里实例化 ./R/x86_64-unknown-linux-gnu-library/3.0/RcppArmadillo/include/RcppArmadilloExtensions/sample.h:45:错误:“const struct arma::subview_col”没有名为“size”的成员 ./R/x86_64-unknown-linux-gnu-library/3.0/RcppArmadillo/include/RcppArmadilloExtensions/sample.h:48:错误:没有匹配函数调用‘arma::subview_col::subview_col(const int&)’ ./R/x86_64-unknown-linux-gnu-library/3.0/RcppArmadillo/include/armadillo_bits/subview_bones.hpp:236:注意:候选人是: arma::subview_col::subview_col() [with eT = double] ./R/x86_64-unknown-linux-gnu-library/3.0/RcppArmadillo/include/armadillo_bits/subview_meat.hpp:2608:注意:arma::subview_col::subview_col(const arma::Mat&, arma::uword, arma ::uword, arma::uword) [with eT = double] ./R/x86_64-unknown-linux-gnu-library/3.0/RcppArmadillo/include/armadillo_bits/subview_meat.hpp:2597:注意:arma::subview_col::subview_col(const arma::Mat&, arma::uword) [与 eT = 双] ./R/x86_64-unknown-linux-gnu library/3.0/RcppArmadillo/include/armadillo_bits/forward_bones.hpp:29:注意:arma::subview_col::subview_col(const arma::subview_col&) make: *** [Citrus.o] 错误 1
我使用的 RcppArmadillo 是 0.7.700.0.0。
同样的错误出现在 linux 和 OSX 上。使用Rstudio编译时,报错信息如下:
no member named 'size' in 'arma::subview_col<double>'.
no matching constructor for initialization of 'arma::subview_col<double>'
我在之前的工作中经常使用 RcppArmadillo::sample。它突然不起作用。我很感激任何帮助。
【问题讨论】:
-
如果没有上下文来说明您要完成的工作,这并没有真正的帮助。
RcppArmadilloExtensions/sample.h有很多测试,所以我在这里有点怀疑。 -
您的编译器可能太旧了。您正在通过 R 3.0.0(大约三年前/已过时)进行安装有点说明问题。