2017-05-28 62 views
0

我想从使用RCPP包的cpp代码创建R包,但是我发现下面的错误。 我正在使用最新版本的macOS sierra,Rstudio,R。使用RCPP包创建R包时出错:macOS中dyn.load出错

我做步骤如下....

1.使用Rcpp.package.skeleton( “mypackage的”),但Makevars或不产生Makevars.win。

2.run 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文件的建议。我可以自己创建这个文件吗?

任何建议,将不胜感激。 先进的谢谢。

+1

请参阅“如何创建最小可重现的示例”。 –

+0

我认为当我们改变Rcpp包的构建时,我们停止添加'src/Makevars',不再需要链接。在帮助文件中对它的引用是错误的,我会解决这个问题。 –

回答

1

即使在编辑之后,你的问题有点难以理解。

您的链接错误表明您引用的外部函数是而不是在代码或链接指令中提供。这样的代码不再是Rcpp最简单的用例,而是更先进的代码。

但是我们对此有一个完整的小插曲:Rcpp-package。看看它,它应该回答你的问题。

有关StackOverflow的更佳问题,请参阅How to make a great R reproducible example