我正在尝试使用 RCPP 包从 cpp 代码创建 R 包,但我发现了以下错误。 我在最新版本上使用 macOS sierra、Rstudio、R。
我做了以下步骤......
1. 使用 Rcpp.package.skeleton("mypackage") 但未生成 Makevars 或 Makevars.win。
2.运行compileAttributes生成RcppExport.cpp
3.run sourceCpp(rcpp_script.cpp) 然后错误dyn.load如下。
Error in dyn.load("/private/var/folders/p4/hx950qdj5hb8zrvzc74_rpr40000gn/T/RtmpX9AU6m/sourceCpp-x86_64-apple-darwin15.6.0-0.12.11/sourcecpp_11cc996e86d/sourceCpp_93.so") :
unable to load shared object '/private/var/folders/p4/hx950qdj5hb8zrvzc74_rpr40000gn/T/RtmpX9AU6m/sourceCpp-x86_64-apple-darwin15.6.0-0.12.11/sourcecpp_11cc996e86d/sourceCpp_93.so':
dlopen(/private/var/folders/p4/hx950qdj5hb8zrvzc74_rpr40000gn/T/RtmpX9AU6m/sourceCpp-x86_64-apple-darwin15.6.0-0.12.11/sourcecpp_11cc996e86d/sourceCpp_93.so, 6): Symbol not found: __ZN23stream_clustering_class3nanER11data_readerRK13config_reader
Referenced from: /private/var/folders/p4/hx950qdj5hb8zrvzc74_rpr40000gn/T/RtmpX9AU6m/sourceCpp-x86_64-apple-darwin15.6.0-0.12.11/sourcecpp_11cc996e86d/sourceCpp_93.so
Expected in: flat namespace
in /private/var/folders/p4/hx950qdj5hb8zrvzc74_rpr40000gn/T/RtmpX9AU6m/sourceCpp-x86_64-apple-darwin15.6.0-0.12.11/sourcecpp_11cc996e86d/sourceCpp_93.so
在发现这个错误之后,我发现了很多关于 Makevars 文件的建议。我可以自己创建这个文件吗?
如有任何建议,我们将不胜感激。 先谢谢你。
最佳答案
你的问题,即使经过编辑,还是有点难以理解。
您的链接错误表明您引用了您不在代码或链接说明中提供的外部函数。这样的代码不再是 Rcpp 最简单的可能用例,而是更高级的。
但是我们有一个完整的小插曲:Rcpp-package .看看它,它应该可以回答您的问题。
有关 StackOverflow 的更好问题,请参阅 How to make a great R reproducible example .
关于c++ - 在 macOS 中使用 RCPP 包 : Error in dyn. 加载创建 R 包时出错,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/44229285/