1

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

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

但是当我尝试使用system.path或类似的相对路径时

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

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

4

1 回答 1

4

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

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

中的.cpp文件cpp/Rcpp::sourceCpped,并且暴露的函数用于运行runit.*文件中的测试。

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

于 2014-10-21T20:54:59.520 回答