Rcpp :: sourceCpp的相对文件路径

时间:2014-10-21 20:32:50

标签: r rcpp testthat

如何使用C ++文件的相对路径而不是绝对路径调用Rcpp::sourceCpp?当我使用绝对路径呼叫R CMD check时,testthatRcpp:sourceCpp都有效:

Rcpp::sourceCpp("/home/jeff/MiniMiniMaxUQ/src/MiniMiniMaxUQ.cpp")

但是当我尝试使用system.path或相对路径(如

)时
Rcpp::sourceCpp("../src/MiniMiniMaxUQ.cpp")

我的包没有通过R CMD check,因为找不到C ++源文件。似乎必须有一种标准的方法来做这种事情,但我不知道。我非常感谢你的帮助。

1 个答案:

答案 0 :(得分:4)

为什么在这里sourceCpp使用.cpp已存在于src/的文件?为什么不明确使用.Call来调用已编译的代码(可用于测试)?

如果您真的想动态调用sourceCpp,可以查看Rcpp中的测试基础架构:https://github.com/RcppCore/Rcpp/tree/master/inst/unitTests

.cpp中的cpp/个文件为Rcpp::sourceCpp,并且公开的函数用于在runit.*个文件中运行测试。

但请注意,这些是单独的.cpp个文件(即,它们位于inst/子目录中,而不是src/文件夹中