【问题标题】:RcppArmadillo compilation errorRcppArmadillo 编译错误
【发布时间】:2014-07-18 05:45:14
【问题描述】:

我在 redhat 5.9 (gcc version 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: #error "* Need a newer compiler *" /home/gn31131/R_downloads/R_inst/lib64/R/library/Rcpp/include/Rcpp/Date.h:在成员函数中 âvoid 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â


任何帮助将不胜感激

【问题讨论】:

    标签: r rcpp


    【解决方案1】:

    如果你被 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 版本。

    【讨论】:

    • 谢谢德克。这真的很有帮助
    猜你喜欢
    • 2017-08-27
    • 1970-01-01
    • 1970-01-01
    • 2015-05-27
    • 2018-02-23
    • 1970-01-01
    • 1970-01-01
    • 2018-05-11
    • 1970-01-01
    相关资源
    最近更新 更多