2016-04-06 28 views
3

Bir MAC işletim sistemine (yosemite) kurmaya çalıştığım bir R paketim var ve bir bağlayıcı sorunuyla karşılaşıyorum. Bu benimRcppArmadillo: Mac'te paketi yüklerken hata

clang++ -dynamiclib -Wl,-headerpad_max_install_names -undefined dynamic_lookup -single_module -multiply_defined suppress -L/Library/Frameworks/R.framework/Resources/lib -L/usr/local/lib -o File1.so File2.o File3.o File4.o RcppExports.o Utils.o -L/Library/Frameworks/R.framework/Resources/lib -lRlapack -L/Library/Frameworks/R.framework/Resources/lib -lRblas -L/usr/local/lib/gcc/x86_64-apple-darwin13.0.0/4.8.2 -lgfortran -lquadmath -lm -F/Library/Frameworks/R.framework/.. -framework R -Wl,-framework -Wl,CoreFoundation 

ld: warning: directory not found for option '-L/usr/local/lib/gcc/x86_64-apple-darwin13.0.0/4.8.2' 
ld: library not found for -lgfortran 
clang: error: linker command failed with exit code 1 (use -v to see invocation) 
make: *** [mypackage.so] Error 1 
ERROR: compilation failed for package ‘mypackage’ 

Benim Makevars dosyayı alıyorum hatadır içerir:

DESCRIPTION yılında
PKG_LIBS = $(LAPACK_LIBS) $(BLAS_LIBS) $(FLIBS) 

, ben:

Depends: 
    R (>= 3.2.0), 
    Rcpp, 
    RcppArmadillo 
LinkingTo: Rcpp, RcppArmadillo 

ve R/help.R yılında, var:

#' @importFrom Rcpp evalCpp 
#' @import RcppArmadillo 
#' @useDynLib mypackage 
NULL 
#include <iostream> 
#include <algorithm> 
#include <cmath> 
#include <Rmath.h> 
#include <RcppArmadillo.h> 

// [[Rcpp::depends(RcppArmadillo)]] 

bir şey eksik:Bu, question Zaten diğer .cpp dosyalar tarafından indluced ediliyor başlık dosyasına Armadillo bağımlılıkları dahil çünkü aynı sorunu değildir? Makefile değiştirilecek mi?

+0

Olası yinelenen [ Rcpp hatası:/usr/bin/ld -lgfortran bulamıyor ] (http://stackoverflow.com/questions/23767816/rcpp-error-usr-bin-ld-cannot-find-lgfortran) – nrussell

+0

@nrussel Öyle düşünmüyorum, zaten RcppArmadillo bağımlılığı dahil. – Cauchy

+0

IIRC benzer bir sorunla karşılaştığımda, gfortran'ı research.att'tan yükleyerek çözdüm, http://stackoverflow.com/a/25912049/471093 – baptiste

cevap

5

Düzeltmeler:

Kolay tüketen Terminal

curl -O http://r.research.att.com/libs/gfortran-4.8.2-darwin13.tar.bz2 
sudo tar fvxz gfortran-4.8.2-darwin13.tar.bz2 -C/

fazla zaman aşağıdaki

açın Terminal

/Applications/Utilities/ Yazım'ı düzeltmek: içeren gcc'u almak için homebrew veya macports kullanın. gfortran. ~/.R/Makevars'u değiştirin. (Gfortran ilgili daha fazla ayrıntı için OpenMP sonrası homebrew ile yüklemek bakın.)

bakınız: ait

  1. http://thecoatlessprofessor.com/programming/r-compiler-tools-for-rcpp-on-os-x/
  2. http://thecoatlessprofessor.com/programming/rcpp-rcpparmadillo-and-os-x-mavericks-lgfortran-and-lquadmath-error/
  3. http://thecoatlessprofessor.com/programming/openmp-in-r-on-os-x/
  4. https://cran.r-project.org/web/packages/Rcpp/vignettes/Rcpp-FAQ.pdf#page=8