web-dev-qa-db-fra.com

Erreur Mac OS X R "ld: avertissement: répertoire introuvable pour l'option"

J'essaie d'installer un package R à partir de la source, mais j'obtiens une erreur:

* installing *source* package ‘mclust’ ...
** package ‘mclust’ successfully unpacked and MD5 sums checked
** libs
gfortran-4.8   -fPIC  -g -O2  -c mclust.f -o mclust.o
gfortran-4.8   -fPIC  -g -O2  -c mclustaddson.f -o mclustaddson.o
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 mclust.so mclust.o mclustaddson.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 -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: 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 -lquadmath
clang: error: linker command failed with exit code 1 (use -v to see invocation)
make: *** [mclust.so] Error 1
ERROR: compilation failed for package ‘mclust’
* removing ‘/Library/Frameworks/R.framework/Versions/3.3/Resources/library/mclust’
Warning in install.packages :
  installation of package ‘mclust’ had non-zero exit status

Je n'ai pas /usr/local/lib/gcc/x86_64-Apple-darwin13.0.0, il est donc logique de ne pas le trouver. J'ai /usr/local/lib/gcc/i686-Apple-darwin11 et /usr/local/lib/gcc/4.8 (lien symbolique vers l'installation de Homebrew). Où va-t-il x86_64-Apple-darwin13.0.0 de?

Il existe de nombreuses références à une erreur similaire en ligne. Cependant, tous sont liés à la compilation dans Xcode et résolus en mettant à jour les paramètres du projet, ce qui n'est pas applicable ici.

15
burger

Vous devez modifier le ~/.R/Makevars fichier. Pour une plus grande vue d'ensemble de ceci voyez: https://cran.r-project.org/doc/manuals/r-release/R-admin.html#OS-X-packages

Alternativement, cela a été répondu auparavant un peu plus en profondeur par @ kevin-ushey dans Avertissement Rcpp: "répertoire introuvable pour l'option '-L/usr/local/Cellar/gfortran/4.8.2/gfortran'" .

Ce qui se passe, c'est que votre code n'est pas exécuté sous gcc à la place, il est transféré vers clang

Vous devrez modifier vos instructions de compilation dans ~/.R/Makevars/ à gcc en utilisant:

VER=-5.3.0 
CC=gcc$(VER)
CXX=g++$(VER)
CFLAGS=-mtune=native -g -O2 -Wall -pedantic -Wconversion
CXXFLAGS=-mtune=native -g -O2 -Wall -pedantic -Wconversion
FLIBS=-L/usr/local/Cellar/gcc/5.3.0/lib/gcc/5

Cela suppose que vous avez déjà installé gcc via homebrew sous:

brew install gcc

(gfortran est livré avec gcc en brassage maintenant)

14
coatless

De http://thecoatlessprofessor.com/programming/rcpp-rcpparmadillo-and-os-x-mavericks-lgfortran-and-lquadmath-error/ vous pouvez résoudre ce problème en téléchargeant les bibliothèques gfortran en option à partir de - http://r.research.att.com/libs/ et les extraire. Pour ce faire sur la ligne de commande

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 /
9
Jim

Intégrant les solutions précédentes avec l'aide supplémentaire des commentaires, la solution suivante a fonctionné pour moi sur Mac OS X High Sierra.

Créer/modifier ~/.R/Makevars avec le contenu suivant:

VER=-8
CC=gcc$(VER)
CXX=g++$(VER)
CXX11=g++$(VER)
CXX14=g++$(VER)
CXX17=g++$(VER)
CFLAGS=-mtune=native -g -O2 -Wall -pedantic -Wconversion
CXXFLAGS=-mtune=native -g -O2 -Wall -pedantic -Wconversion
FLIBS=-L/usr/local/Cellar/gcc/8.2.0/lib/gcc/8

Remarque, j'utilise homebrew et j'ai installé la version 8.2.0 de gcc.

4
Megatron

J'ai Mac OS Catalina et dans mon cas, l'installation de Homebrew, les plus récents gcc et Gfortran 8.2.0 ont résolu le problème.

1
Magda Orzechowska

La solution était de réinstaller les packages problématiques avec Homebrew.

$ brew uninstall --ignore-dependencies --force openssl
$ brew install openssl

$ brew uninstall --ignore-dependencies --force readline  
$ brew install readline
0
Tolgahan ÜZÜN

J'ai reçu la même erreur sur MAC. Tout ce que je devais faire était d'installer gfortran-6.1.pkg à partir de entrez la description du lien ici . Assurez-vous que le package est installé sous/usr/local/gfortran afin qu'il puisse être trouvé par R.

0
Alimz