在Windows中的R-Studio外部使用Rcpp编译包
我已经在R-Studio中成功地使用Rcpp构建了自己的包。但是,在Windows控制台中构建包时,会出现一些错误消息,抱怨文件缺少在Windows中的R-Studio外部使用Rcpp编译包,r,rcpp,R,Rcpp,我已经在R-Studio中成功地使用Rcpp构建了自己的包。但是,在Windows控制台中构建包时,会出现一些错误消息,抱怨文件缺少R.h 我将路径和R\u Home环境设置为 SET PATH=D:\RTools\gcc-4.6.3\bin;D:\R3\bin;D:\RTools\bin; SET R_HOME=D:\R3\ 而build命令是 R CMD INSTALL --byte-compile --build mypkg 以下是编译错误消息: g++ -m32 -I"/inclu
R.h
我将路径
和R\u Home
环境设置为
SET PATH=D:\RTools\gcc-4.6.3\bin;D:\R3\bin;D:\RTools\bin;
SET R_HOME=D:\R3\
而build命令是
R CMD INSTALL --byte-compile --build mypkg
以下是编译错误消息:
g++ -m32 -I"/include" -DNDEBUG -I"D:/R3/library/Rcpp/include" -I"d:
/RCompile/CRANpkg/extralibs64/local/include" -O2 -Wall -mtune=core2 -c Rcpp
Exports.cpp -o RcppExports.o
In file included from D:/R3/library/Rcpp/include/Rcpp.h:27:0,
from RcppExports.cpp:4:
D:/R3/library/Rcpp/include/RcppCommon.h:35:15: fatal error: R.h: No su
ch file or directory
compilation terminated.
如错误所示,您缺少一个包含
R.h
如果查看编译行,语句
-I"/include"
相对于您在D:/R3
您需要检查您的设置,不知何故您混淆了R使用正确的include目录。
Rcpp在Windows上构建得很好,您甚至可以通过向服务提交软件包进行检查。是。问题是如何让R知道正确的
include
dir在哪里。我是否错过了其他环境变量?我也无法在dos中编译Rcpp_hello_world包。经过一些尝试,我现在可以确认R CMD INSTALL
无法识别Makevars.win
文件中的${R_HOME}
。这就是为什么我们在提示符中看到-I”/include“
。Makevars.win
的内容是从Rcpp生成的默认内容,即:PKG_LIBS=$(shell“${R_HOME}/bin${R_ARCH_bin}/Rscript.exe”-e“Rcpp::LdFlags()”
它适用于CRAN的windows版本,适用于R-Forge的windows版本,适用于win builder,适用于Rcpp-devel上的许多(windows)用户。也许你用的是另一个外壳。也许你的R指令是非标准的。由于您提供的详细信息很少,因此无法为您提供帮助。顺便说一句,您不需要设置R\u HOME
——R倾向于知道它的安装位置。