2017-05-28 75 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