2013-09-01 35 views
1

我已經在R-Studio中使用Rcpp成功構建了自己的軟件包。但是,在Windows控制檯中構建軟件包時,會出現一些錯誤消息,指出文件丟失R.h在Windows R-Studio之外使用Rcpp編譯軟件包

我設置pathR_Home環境與

SET PATH=D:\RTools\gcc-4.6.3\bin;D:\R3\bin;D:\RTools\bin; 
SET R_HOME=D:\R3\ 

而生成命令是

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. 
+0

經過一番嘗試,我現在可以確認'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() 「) – baidao

+0

它適用於CRAN的windows版本,適用於R-Forge的windows版本,適用於win-builder,適用於rcpp-devel許多(Windows)用戶。也許你使用不同的shell。也許你的R CMD是非標準的。由於您提供的少量細節無法幫助您。 –

+0

順便說一句,你應該不需要設置'R_HOME' - R傾向於知道它的安裝位置。 –

回答

0

你缺少一個包括對於R.h,正如錯誤所述。

如果你看看你的編譯行,語句

-I"/include" 

是相錯的規定R_HOMED:/R3

你需要檢查你的設置,不知爲何,你使用了正確的困惑 - [R包含目錄。 Rcpp在Windows上構建得很好,您甚至可以通過將您的軟件包提交到​​win-builder服務來進行檢查。

+0

是的。問題是我如何讓R知道正確的'include'目錄。我錯過其他環境變量嗎?我無法在dos中編譯Rcpp_hello_world軟件包。 – baidao