2013-12-13 20 views
1

加載編譯對象Rcpp編譯對象時出現問題。我從源代碼編譯RcppSMC包。我在mac中的Rcpp包中的dyn.load錯誤

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編譯以下verson。我認爲有一些編譯問題,因爲如果我從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在機器工作。

回答

5

如果您嘗試安裝從源代碼鏈接到Rcpp的軟件包,則可能還需要從源代碼安裝Rcpp

假設您使用的是OS X Mavericks,在StackOverflow中也出現了類似的問題。

+0

謝謝凱文。那真是愚蠢。我讀過關於編譯Rcpp應該從源代碼安裝。但忽視它認爲它的推薦和不必要。從源代碼安裝時它確實工作順利。 – vinash85

+1

沒問題。由於舊版(和CRAN使用的)編譯器和較新的'clang'編譯器之間的ABI兼容性,它最近才成爲Mac OSX Mavericks用戶的必需品。希望問題將由R 3.1.0解決。 –