使用 Rstudio 在 Windows 中设置 Rcpp Armadillo

gma*_*man 1 windows r armadillo rcpp

我正在尝试使用 Rstudio 在 Windows 系统中设置 RcppArmadillo。我已经使用命令成功安装了 RcppArmadillo

install.packages("RcppArmadillo")
Run Code Online (Sandbox Code Playgroud)

在 R 控制台中。

但是当我尝试使用 RcppArmadillo 依赖项编译 C++ 代码时,我收到如下错误

g++ -m64 -I"C:/PROGRA~1/R/R-30~1.3/include" -DNDEBUG     -I"C:/PROGRA~1/R/R-30~1.3/library/Rcpp/include"  -I"d:/RCompile/CRANpkg/extralibs64/local/include"     -O2 -Wall  -mtune=core2 -c colrowStat.cpp -o colrowStat.o colrowStat.cpp:5:26: fatal error: RcppArmadillo.h: No such file or directory compilation terminated. make: *** [colrowStat.o] Error 1 Warning message: running command 'make -f "C:/PROGRA~1/R/R-30~1.3/etc/x64/Makeconf" -f "C:/PROGRA~1/R/R-30~1.3/share/make/winshlib.mk" SHLIB_LDFLAGS='$(SHLIB_CXXLDFLAGS)' SHLIB_LD='$(SHLIB_CXXLD)' SHLIB="sourceCpp_38187.dll" WIN=64 TCLBIN=64 OBJECTS="colrowStat.o"' had status 2 
Run Code Online (Sandbox Code Playgroud)

但头文件可在 path_to_my_documents/R/win-libraries/3.0/RcppArmadillo/Include 中找到

我认为编译的包含路径没有这个路径。我不知道如何将此文件夹添加到路径中。我非常感谢对这个问题的任何帮助。

Dir*_*tel 5

你做错了。有很多方法可以做到这一点,我们记录了其中的几种。你在这里所做的不是其中之一。

尝试这个,然后从那里开始:

R> library(Rcpp)
R> cppFunction("arma::mat op(arma::vec x) { return(x*x.t()); }", 
+              depends="RcppArmadillo")
R> op(1:2)
     [,1] [,2]
[1,]    1    2
[2,]    2    4
R> 
Run Code Online (Sandbox Code Playgroud)

这是基本示例之一:获取一个向量,将其乘以其转置并返回结果外积矩阵。

您最终想要的是一个包,为此您可以做得比从 开始更糟糕RcppArmadillo.package.skeleton()