我在redhat 5.9(gcc版本4.2)中运行R并获得以下编译错误消息:
g ++ -I/home/gn31131/R_downloads/R_inst/lib64/R/include -DNDEBUG -I/home/gn31131/R_downloads/R_inst/include -I/home/gn31131/R_downloads/R_inst/library/Rcpp/include -I/home/gn31131/R_downloads/R_inst/library/RcppArmadillo/include -I.-DNDEBUG -I/usr/local/include -I"/ home/gn31131/R_downloads/R_inst/lib64/R/library/Rcpp/include"-I ../ inst/include -fpic -g -O2 -c RcppArmadillo. cpp -o RcppArmadillo.o包含在../inst/include/armadillo:48的文件中,来自../inst/include/RcppArmadilloForward.h:37,来自../inst/include/RcppArmadillo.h:30,来自RcppArmadillo.cpp:22:../ inst/include/armadillo_bits/ compiler_setup.hpp :119:6:错误:#error" *需要更新的编译器* "/ home/gn31131/R_downloads/R_inst/lib64/R/library/Rcpp/include/Rcpp/Date.h:在成员函数中?Rcpp :: Date :: update_tm()â:/home/gn31131/R_downloads/R_inst/lib64/R/library/Rcpp/include/Rcpp/Date.h: 108:警告:从âdoubleâ/home/gn31131/R_downloads/R_inst/lib64/R/library/Rcpp/include/Rcpp/Date.h转换为âtime_tâ:在函数中âRcpp:: Date Rcpp :: operator +(const Rcpp :: Date& ,int)â:/home/gn31131/R_downloads/R_inst/lib64/R/library/Rcpp/include/Rcpp/Date.h:139:警告:从âdoubleâia64make转换为âtime_tâ:* [RcppArmadillo.o]错误 1错误:包的编译失败âRcppArmadilloâ*删除â/ home/gn31131/R_downloads/R_inst/lib64/R/library /RcppArmadilloâ
任何帮助将不胜感激
如果您坚持使用gcc/g ++ 4.2,您确实需要升级编译器,或者需要将RcppArmadillo降级到旧版本.当前版本通过测试
#if (ARMA_GCC_VERSION < 40200) && !defined(__INTEL_COMPILER)
#error "*** Need a newer compiler ***"
#endif
Run Code Online (Sandbox Code Playgroud)
这咬你的系统.
您可以通过CRAN的存档页面访问所有已发布的版本,您可能只需要尝试更旧的版本.
或升级您的操作系统(版本).较新的RHEL/CentOS有更新的编译器,但我实际上推荐使用Ubuntu的LTS版本.