mac中Rcpp包中的dyn.load错误

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了mac中Rcpp包中的dyn.load错误相关的知识,希望对你有一定的参考价值。

我在加载编译对象Rcpp编译对象时遇到问题。我从源代码编译RcppSMC包。一世

Error in dyn.load("mylib.so") : 
  unable to load shared object '/Users/avi/softwares/RcppSMC/src/mylib.so': 
  dlopen(/Users/avi/softwares/RcppSMC/src/mylib.so, 6): Symbol not found: __ZNSoD0Ev
  Referenced from: /Users/avi/softwares/RcppSMC/src/mylib.so
  Expected in: flat namespace
 in /Users/avi/softwares/RcppSMC/src/mylib.so 

我正在使用clang进行以下编译。我认为有一些编译问题,因为如果我从CRAN dyn.load下载mac os二进制文件。

Apple LLVM version 5.0 (clang-500.2.79) (based on LLVM 3.3svn)
Target: x86_64-apple-darwin13.0.0 

clang++ -I/Library/Frameworks/R.framework/Resources/include -DNDEBUG -I../inst/include -I/usr/local/include -I"/Users/avi/Library/R/3.0/library/Rcpp/include"   -fPIC  -g -O3 -pipe -std=c++0x -Wall -pedantic -c blockpfgaussianopt.cpp -o blockpfgaussianopt.o
  .....
clang++ -dynamiclib -Wl,-headerpad_max_install_names -undefined dynamic_lookup -single_module -multiply_defined suppress -L/usr/local/lib -L/usr/local/lib -o mylib.so blockpfgaussianopt.o history.o pflineart.o pfnonlinbs.o smc-exception.o /Users/avi/Library/R/3.0/library/Rcpp/lib/libRcpp.a -F/Library/Frameworks/R.framework/.. -framework R -Wl,-framework -Wl,CoreFoundation

安装到/Users/avi/Library/R/3.0/library/RcppSMC/libs

这是一个奇怪的问题,因为sourceCpp正在机器中工作。

答案

如果您尝试安装从源代码链接到Rcpp的软件包,您可能还需要从源代码安装Rcpp

假设您使用的是OS X Mavericks,StackOverflow附近也有类似的问题。

另一答案

我的一位同事也遇到了同样的问题。

我们尝试了在互联网上找到的所有可能解决方案。

我们最终得出的结论是,新版本的Mac(Mojave)导致了这些类型的问题。

他降级到Sierra并重新安装了一切。这解决了他的问题。

以上是关于mac中Rcpp包中的dyn.load错误的主要内容,如果未能解决你的问题,请参考以下文章

将Rcpp头文件导入NAMESPACE中的R包中

rcpp报错,在mac上学习Rcpp和C++

犰狳中的 Rcpp 糖命令

Rcpp犰狳中的样本

无法在 Windows 10 的 Rstudio 中编译 rstan 或 Rcpp 代码

如何从 Rcpp 中的另一个函数调用一个函数?