R 包安装错误:编译失败

R 包安装错误:编译失败,r,compilation,compiler-errors,package,forecasting,R,Compilation,Compiler Errors,Package,Forecasting,我最近将R更新为3.1.0。我试图在R.Framework(我运行的是OSX Mavericks)中将我的软件包移到3.1版本,但不知怎么搞得一团糟,所以在干净的安装之前完全卸载了所有软件包 重新安装软件包时,我没有遇到任何问题,直到我点击forecast软件包,该软件包产生以下错误: package ‘forecast’ is available as a source package but not as a binary Warning in install.packages

我最近将R更新为3.1.0。我试图在R.Framework(我运行的是OSX Mavericks)中将我的软件包移到3.1版本,但不知怎么搞得一团糟,所以在干净的安装之前完全卸载了所有软件包

重新安装软件包时,我没有遇到任何问题,直到我点击
forecast
软件包,该软件包产生以下错误:

     package ‘forecast’ is available as a source package but not as a binary

Warning in install.packages :
package ‘forecast’ is not available (for R version 3.1.0)
实际上,在重新安装之前,我让R3.1.0和forecast和hts一起工作,所以我怀疑问题源于我所做的事情,而不是兼容性问题

我运行了以下命令,看看是否可以找到有关安装失败的更多详细信息:
install.packages(“forecast”,type=“source”,verbose=T,quiet=F)

其输出稍微超出我的理解范围,但可能有助于诊断:

system (cmd0): /Library/Frameworks/R.framework/Resources/bin/R CMD INSTALL
trying URL 'http://cran.rstudio.com/src/contrib/forecast_5.3.tar.gz'
Content type 'application/x-gzip' length 150395 bytes (146 Kb)
opened URL
==================================================
downloaded 146 Kb

foundpkgs: forecast, /var/folders/0y/_13fkvws0tn5xh4m8wsymkdh0000gp/T//RtmpzTzSpG/downloaded_packages/forecast_5.3.tar.gz
files: /var/folders/0y/_13fkvws0tn5xh4m8wsymkdh0000gp/T//RtmpzTzSpG/downloaded_packages/forecast_5.3.tar.gz
* installing *source* package ‘forecast’ ...
** package ‘forecast’ successfully unpacked and MD5 sums checked
** libs
clang++ -I/Library/Frameworks/R.framework/Resources/include -DNDEBUG  -I/usr/local/include -I/usr/local/include/freetype2 -I/opt/X11/include -I"/Library/Frameworks/R.framework/Versions/3.1/Resources/library/Rcpp/include" -I"/Library/Frameworks/R.framework/Versions/3.1/Resources/library/RcppArmadillo/include"   -fPIC  -Wall -mtune=core2 -g -O2  -c calcBATS.cpp -o calcBATS.o
clang++ -I/Library/Frameworks/R.framework/Resources/include -DNDEBUG  -I/usr/local/include -I/usr/local/include/freetype2 -I/opt/X11/include -I"/Library/Frameworks/R.framework/Versions/3.1/Resources/library/Rcpp/include" -I"/Library/Frameworks/R.framework/Versions/3.1/Resources/library/RcppArmadillo/include"   -fPIC  -Wall -mtune=core2 -g -O2  -c calcTBATS.cpp -o calcTBATS.o
clang++ -I/Library/Frameworks/R.framework/Resources/include -DNDEBUG  -I/usr/local/include -I/usr/local/include/freetype2 -I/opt/X11/include -I"/Library/Frameworks/R.framework/Versions/3.1/Resources/library/Rcpp/include" -I"/Library/Frameworks/R.framework/Versions/3.1/Resources/library/RcppArmadillo/include"   -fPIC  -Wall -mtune=core2 -g -O2  -c etsTargetFunction.cpp -o etsTargetFunction.o
clang++ -I/Library/Frameworks/R.framework/Resources/include -DNDEBUG  -I/usr/local/include -I/usr/local/include/freetype2 -I/opt/X11/include -I"/Library/Frameworks/R.framework/Versions/3.1/Resources/library/Rcpp/include" -I"/Library/Frameworks/R.framework/Versions/3.1/Resources/library/RcppArmadillo/include"   -fPIC  -Wall -mtune=core2 -g -O2  -c etsTargetFunctionWrapper.cpp -o etsTargetFunctionWrapper.o
clang -I/Library/Frameworks/R.framework/Resources/include -DNDEBUG  -I/usr/local/include -I/usr/local/include/freetype2 -I/opt/X11/include -I"/Library/Frameworks/R.framework/Versions/3.1/Resources/library/Rcpp/include" -I"/Library/Frameworks/R.framework/Versions/3.1/Resources/library/RcppArmadillo/include"   -fPIC  -Wall -mtune=core2 -g -O2  -c etscalc.c -o etscalc.o
clang -I/Library/Frameworks/R.framework/Resources/include -DNDEBUG  -I/usr/local/include -I/usr/local/include/freetype2 -I/opt/X11/include -I"/Library/Frameworks/R.framework/Versions/3.1/Resources/library/Rcpp/include" -I"/Library/Frameworks/R.framework/Versions/3.1/Resources/library/RcppArmadillo/include"   -fPIC  -Wall -mtune=core2 -g -O2  -c etspolyroot.c -o etspolyroot.o
clang++ -I/Library/Frameworks/R.framework/Resources/include -DNDEBUG  -I/usr/local/include -I/usr/local/include/freetype2 -I/opt/X11/include -I"/Library/Frameworks/R.framework/Versions/3.1/Resources/library/Rcpp/include" -I"/Library/Frameworks/R.framework/Versions/3.1/Resources/library/RcppArmadillo/include"   -fPIC  -Wall -mtune=core2 -g -O2  -c makeBATSMatrices.cpp -o makeBATSMatrices.o
clang++ -I/Library/Frameworks/R.framework/Resources/include -DNDEBUG  -I/usr/local/include -I/usr/local/include/freetype2 -I/opt/X11/include -I"/Library/Frameworks/R.framework/Versions/3.1/Resources/library/Rcpp/include" -I"/Library/Frameworks/R.framework/Versions/3.1/Resources/library/RcppArmadillo/include"   -fPIC  -Wall -mtune=core2 -g -O2  -c makeTBATSMatrices.cpp -o makeTBATSMatrices.o
makeTBATSMatrices.cpp:11:6: warning: unused variable 'lengthSeasonal' [-Wunused-variable]
        int lengthSeasonal = 0;
            ^
1 warning generated.
clang++ -I/Library/Frameworks/R.framework/Resources/include -DNDEBUG  -I/usr/local/include -I/usr/local/include/freetype2 -I/opt/X11/include -I"/Library/Frameworks/R.framework/Versions/3.1/Resources/library/Rcpp/include" -I"/Library/Frameworks/R.framework/Versions/3.1/Resources/library/RcppArmadillo/include"   -fPIC  -Wall -mtune=core2 -g -O2  -c updateMatrices.cpp -o updateMatrices.o
clang++ -I/Library/Frameworks/R.framework/Resources/include -DNDEBUG  -I/usr/local/include -I/usr/local/include/freetype2 -I/opt/X11/include -I"/Library/Frameworks/R.framework/Versions/3.1/Resources/library/Rcpp/include" -I"/Library/Frameworks/R.framework/Versions/3.1/Resources/library/RcppArmadillo/include"   -fPIC  -Wall -mtune=core2 -g -O2  -c updateTBATSMatrices.cpp -o updateTBATSMatrices.o
updateTBATSMatrices.cpp:38:10: warning: unused variable 'gammaVector' [-Wunused-variable]
        double *gammaVector;
                ^
1 warning generated.
clang++ -dynamiclib -Wl,-headerpad_max_install_names -undefined dynamic_lookup -single_module -multiply_defined suppress -L/usr/local/lib -o forecast.so calcBATS.o calcTBATS.o etsTargetFunction.o etsTargetFunctionWrapper.o etscalc.o etspolyroot.o makeBATSMatrices.o makeTBATSMatrices.o updateMatrices.o updateTBATSMatrices.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: *** [forecast.so] Error 1
ERROR: compilation failed for package ‘forecast’
* removing ‘/Library/Frameworks/R.framework/Versions/3.1/Resources/library/forecast’
Warning in install.packages :
  installation of package ‘forecast’ had non-zero exit status

The downloaded source packages are in
    ‘/private/var/folders/0y/_13fkvws0tn5xh4m8wsymkdh0000gp/T/RtmpzTzSpG/downloaded_packages’
我真的很感谢你的帮助。我最近编写的许多代码都依赖于forecast中的函数

  • 从brew安装gfortran(如果您没有brew,请用谷歌搜索它。安装非常简单):

    brew安装gfortran

    如果已安装,请使用以下软件升级至最新版本:

    brew升级gfortran

  • 然后执行以下操作之一:

    ln-s/usr/local/ceral/gfortran/4.8.2/gfortran/lib/libgfortran.*/usr/local/lib/

    将此行添加到
    ~/.R/Makevars
    文件中:

    FLIBS=-L/usr/local/cell/gfortran/4.8.2/gfortran

    我做了第二个选择

  • 现在再次运行
    install.packages(“forecast”,type=“source”)
    ,它应该可以工作了


  • 在我的例子中,我试图用
    devtools::install\u github(“robjhyndman/forecast”)
    安装最新版本的{forecast}包,但出现了类似的错误

    然后,尽管我不确定我所做的是否正确,但根据mchangun的回答,我做了如下操作,并解决了错误:

  • brew升级gcc
  • 错误:已安装gcc 5.2.0

  • gcc--版本
  • 配置为:--prefix=/Applications/Xcode.app/Contents/Developer/usr--gxx include dir=/Applications/Xcode.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX10.11.sdk/usr/include/c++/4.2.1 苹果LLVM 7.0.0版(clang-700.1.76) 目标:x86_64-apple-darwin15.0.0 线程模型:posix

  • ls/usr/local/cell/gcc
  • 4.9.2 4.9.2_1 5.2.0

  • 将行
    FLIBS=-L/usr/local/ceral/gcc/5.2.0
    添加到
    ~/.R/Makevars
    文件中

  • 运行
    devtools::install\u github(“robjhyndman/forecast”)
    就可以了

  • 从下载gfortran

    sudo rm-r/usr/local/gfortran/usr/local/bin/gfortran

    然后安装gfortran

    sudo vi/Library/Frameworks/R.framework/Resources/etc/Makeconf

    将所有gfortran-4.8更改为gfortran

    FC=gfortran FCFLAGS=-Wall-g-O2$(LTO) FCLIBS= F77=gfortran F77_能见度= FFLAGS=-g-O2$(LTO)

    FLIBS=-L/usr/local/lib/gcc/x86_64-apple-darwin13.0.0/4.8.2-lgfortran-lquadmath-lm 将上面的FLIBS更改为下面的FLIBS FLIBS=-L/usr/local/gfortran/lib-lgfortran-lquadmath-lmTerminal

  • brew安装gcc
  • gcc——版本
  • ls/usr/本地/酒窖/gcc 6.3.0_1
  • sudo vi/Library/Frameworks/R.framework/Resources/etc/Makeconf
  • 添加行FLIBS=-L/usr/local/ceral/gcc/6.3.0_1
  • Rstudio:

  • 安装包(“预测”

  • 要安装gfortran,请使用

    brew cask install gfortran
    

    看看
    r-sig-mac
    档案,里面有很多关于如何在Mavericks下编译
    r
    包的说明。