在Windows中的R-Studio外部使用Rcpp编译包

在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-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"/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倾向于知道它的安装位置。