如何使用C ++文件的相对路径而不是绝对路径调用Rcpp::sourceCpp
?当我使用绝对路径呼叫R CMD check
时,testthat
和Rcpp:sourceCpp
都有效:
Rcpp::sourceCpp("/home/jeff/MiniMiniMaxUQ/src/MiniMiniMaxUQ.cpp")
但是当我尝试使用system.path
或相对路径(如
Rcpp::sourceCpp("../src/MiniMiniMaxUQ.cpp")
我的包没有通过R CMD check
,因为找不到C ++源文件。似乎必须有一种标准的方法来做这种事情,但我不知道。我非常感谢你的帮助。
答案 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/
文件夹中