RcppArmadillo编译错误

时间:2014-05-28 20:24:25

标签: r rcpp

我在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â


任何帮助将不胜感激

1 个答案:

答案 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版本。