假设我使用f1
编译了一个包含两个函数f2
和Rcpp::sourceCpp('myPath/myCode.cpp')
的代码,并且我找到了创建的sourceCpp_123123.dll
。
现在假设我在Windows 7上有两个不同的批处理文件,它们分别运行RScript -e "source('myRCode1.r')"
和RScript -e "source('myRCode2.r')"
。我希望我的两个函数f1
和f2
可用于每次运行RScript
。
我可以放入我的代码myRCode1.r
和myRCode2.r
在运行其余代码之前执行Rcpp::sourceCpp('myPath/myCode.cpp')
。另一个选择是将我的两个函数f1
和f2
转换为一个包含更多参与过程的包。
有没有简单的方法来简单加载sourceCpp_123123.dll
和myRCode1.r
内的myRCode2.r
?
我尝试了dyn.load("myDllPath\sourceCpp_123123.dll")
与now=TRUE
,local=TRUE
,now=FALSE
,local=FALSE
的各种排列组合,但没有一个选项加载这两个函数。
然而,当我尝试getLoadedDLLs
时,我看到sourceCpp_123123.dll
已被加载!
正如我之前评论的那样,这是您想要使用包的地方。
或者如果你是那些反对包装的人之一(无论如何通常说服经验丰富的R用户/程序员几乎总是提倡使用包装),那么你可以作弊并将你的两个文件组合成一个。
这将耦合两个功能集。您可能已经知道,您可以将C ++和R代码混合在一个文件中,因为我们一直在Rcpp Gallery中进行...