ld: library not found for -lgfortranの対処法
はじめに
forecast
パッケージをインストールした際にld: library not found for -lgfortran
がでて困った際のワークアラウンド。
sessionInfo() R version 3.6.3 (2020-02-29) Platform: x86_64-apple-darwin15.6.0 (64-bit) Running under: macOS Mojave 10.14.6
事象としてはこんなかんじ。
install.packages('forecast', dependencies = TRUE) 【略】 ld: warning: directory not found for option '-L/usr/local/gfortran/lib/gcc/x86_64-apple-darwin15/6.1.0' ld: warning: directory not found for option '-L/usr/local/gfortran/lib' ld: library not found for -lgfortran ←←←←コレ clang: error: linker command failed with exit code 1 (use -v to see invocation) make: *** [RcppArmadillo.so] Error 1 ERROR: compilation failed for package ‘RcppArmadillo’ * removing ‘/Library/Frameworks/R.framework/Versions/3.6/Resources/library/RcppArmadillo’ Warning in install.packages : installation of package ‘RcppArmadillo’ had non-zero exit status ERROR: dependency ‘quadprog’ is not available for package ‘tseries’ * removing ‘/Library/Frameworks/R.framework/Versions/3.6/Resources/library/tseries’ Warning in install.packages : installation of package ‘tseries’ had non-zero exit status ERROR: dependencies ‘fracdiff’, ‘lmtest’, ‘tseries’, ‘urca’, ‘RcppArmadillo’ are not available for package ‘forecast’ * removing ‘/Library/Frameworks/R.framework/Versions/3.6/Resources/library/forecast’ Warning in install.packages : installation of package ‘forecast’ had non-zero exit status
下記をターミナルで実行。
$ brew install gcc@4.9 # gccコンパイラなどのver.を4.9に揃える ln -fs /usr/local/bin/gcc-4.9 /usr/local/bin/gcc ln -fs /usr/local/bin/g++-4.9 /usr/local/bin/g++ ln -fs /usr/local/bin/gfortran-4.9 /usr/local/bin/gfortran # lgfortranのシンボリックリンク設定 ln -fs /usr/local/lib/gcc/4.9/libgfortran.dylib /usr/local/lib/libgfortran.dylib ln -fs /usr/local/lib/gcc/4.9/libgfortran.a /usr/local/lib/libgfortran.a ln -fs /usr/local/lib/gcc/4.9/libgfortran.3.dylib /usr/local/lib/libgfortran.3.dylib ln -fs /usr/local/lib/gcc/4.9/libgfortran.spec /usr/local/lib/libgfortran.spec # ld: library not found for -lquadmathが出た場合 # ln -fs /usr/local/lib/gcc/4.9/libquadmath.0.dylib /usr/local/lib/libquadmath.0.dylib # ln -fs /usr/local/lib/gcc/4.9/libquadmath.a /usr/local/lib/libquadmath.a # ln -fs /usr/local/lib/gcc/4.9/libquadmath.dylib /usr/local/lib/libquadmath.dylib install.packages('forecast', dependencies = TRUE) library(forecast) Registered S3 method overwritten by 'quantmod': method from as.zoo.data.frame zoo