ошибка в dyn.load в пакете Rcpp в Mac

У меня проблема с загрузкой скомпилированного объекта 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 для компиляции со следующей версией. Я думаю, что есть некоторая проблема с компиляцией, потому что, если я загружаю двоичный файл mac os из CRAN, dyn.load работает.

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 работает на машине.


person vinash85    schedule 13.12.2013    source источник


Ответы (2)


Если вы пытаетесь установить пакет, который ссылается на Rcpp из исходного кода, вам, вероятно, также потребуется установить Rcpp из исходного кода.

Предполагая, что вы используете OS X Mavericks, в StackOverflow были похожие сообщения с похожими проблемами.

person Kevin Ushey    schedule 13.12.2013
comment
Спасибо, Кевин. Это было глупо с моей стороны. Я читал о том, что компиляция Rcpp должна быть установлена ​​из исходного кода. Но проигнорировал это, думая, что это рекомендуется и не нужно. Он определенно работает гладко при установке из исходного кода. - person vinash85; 13.12.2013
comment
Без проблем. Это только недавно стало необходимо для пользователей Mac OSX Mavericks из-за совместимости ABI между старыми (и используемыми CRAN) компиляторами и более новыми компиляторами clang. Надеемся, что проблемы будут решены в R 3.1.0. - person Kevin Ushey; 13.12.2013

У моего коллеги такая же проблема.

Мы перепробовали все возможные решения, которые нашли в Интернете.

В итоге мы приходим к выводу, что именно новая версия Mac (Mojave) вызвала такие проблемы.

Он понизил версию до Sierra и переустановил все. Это решило его проблему.

person F. Privé    schedule 27.03.2019
comment
У меня была такая же проблема, и ваше решение было тем, что я сделал, чтобы заставить его работать. Спасибо за публикацию, поскольку я изначально думал, что есть обходной путь с определенной версией MacOS, который я не обнаружил. - person Joseph Wood; 27.03.2019
comment
Возможно, есть какой-то обходной путь, но мы его не нашли :/ - person F. Privé; 27.03.2019