我在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â转换为âtime_tâ /home/gn31131/R_downloads/R_inst/lib64/R/library/Rcpp/include/Rcpp/Date.h:函数âRcpp:: Date Rcpp :: operator +(const Rcpp :: Date&,int)â: /home/gn31131/R_downloads/R_inst/lib64/R/library/Rcpp/include/Rcpp/Date.h:139:警告:从âdoubleâ转换为âtime_tâ ia64make: * [RcppArmadillo.o]错误1 错误:包装âRcppArmadillo的编译失败 *删除â/ home / gn31131 / R_downloads / R_inst / lib64 / R / library /RcppArmadilloâ
任何帮助将不胜感激
答案 0 :(得分:6)
如果您坚持使用gcc / g ++ 4.2,您确实需要升级编译器,或者需要将RcppArmadillo降级到旧版本。当前版本通过
进行测试#if (ARMA_GCC_VERSION < 40200) && !defined(__INTEL_COMPILER)
#error "*** Need a newer compiler ***"
#endif
这会咬你的系统。
您可以通过CRAN's Archive page for the package访问所有已发布的版本,您可能只需要尝试更旧的版本。
或升级您的操作系统(版本)。较新的RHEL / CentOS有更新的编译器,但我实际上推荐使用Ubuntu的LTS版本。