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.
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)
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 /
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.
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.
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
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.