每当我运行sourceCpp时都会发出警告

时间:2015-11-03 00:06:32

标签: r rstudio rcpp

我在使用RStudio的电脑上运行Rcpp时遇到问题。每当我sourceCpp()一个cpp文件,甚至是Rcpp::Rcpp.package.skeleton()附带的Hello World文件时,我都会收到警告

In normalizePath(path.expand(path), winslash, mustWork) :
  path[1]=".../anRpackage/src/../inst/include": The system cannot find the path specified 

我搜索了Stackoverflow,看起来有些人在他们的包的描述中没有Depends:Rcpp时会收到此警告,但我只是运行sourceCpp()因此描述文件无关紧要(我也改变了我的描述文件)。 这只是一个警告,所以我写的类和函数确实出现在R中,但是在我使用R中的函数几次后,RStudio经常崩溃,这可能与也可能没有关系。

我的会话信息:

R version 3.1.3 (2015-03-09)
Platform: x86_64-w64-mingw32/x64 (64-bit)
Running under: Windows 8 x64 (build 9200)

locale:
[1] LC_COLLATE=English_United States.1252  LC_CTYPE=English_United States.1252    LC_MONETARY=English_United States.1252
[4] LC_NUMERIC=C                           LC_TIME=English_United States.1252    

attached base packages:
[1] stats     graphics  grDevices utils     datasets  methods   base     

other attached packages:
[1] Rcpp_0.12.1         RevoUtilsMath_7.4.1 RevoUtils_7.4.1     RevoMods_7.4.1      RevoScaleR_7.4.1    lattice_0.20-30     rpart_4.1-9        

loaded via a namespace (and not attached):
[1] codetools_0.2-10 foreach_1.4.2    grid_3.1.3       iterators_1.0.7  tools_3.1.3  

我想革命R可能是罪魁祸首,但我无从知晓。我很感激帮助,因为我不想忽视这个警告,而且显然不适合RStudio反复崩溃。

亲切的问候

1 个答案:

答案 0 :(得分:0)

今天这仍然有意义,所以这是我的发现。

Rcpp可以生成与C ++和R之间的接口。 这些是在源文件中指定的属性的帮助下生成的。

根据这些属性,对Rcpp::compileAttributes()的调用将产生标题。同时,这还将创建文件夹<package directory>/inst/include。如果没有在任何地方指定属性,则compileAttributes()不会创建这些目录。

为了消除此警告,请创建<package directory>/inst/include

有关属性的更多信息,请参见Rcpp attributes vignette