You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

CentOS7下R3.6.0安装DADA2时RcppEigen编译失败如何解决?

解决CentOS 7下安装DADA2 v1.16时RcppEigen编译失败的问题

问题原因

CentOS 7默认的GCC编译器版本为4.8.5,对C++标准的支持有限,而RcppEigen编译时用到的FCONE宏是高版本GCC引入的特性,低版本编译器无法识别,导致编译报错。

解决方案

方案一:升级系统编译器(推荐)

CentOS 7可以通过SCL软件源安装高版本GCC,步骤如下:

  • 安装SCL源:
    yum install centos-release-scl
    
  • 安装GCC 9.x版本:
    yum install devtoolset-9-gcc devtoolset-9-gcc-c++
    
  • 临时激活GCC 9环境(当前终端有效):
    scl enable devtoolset-9 bash
    
    若要永久生效,可将以下内容添加到~/.bashrc文件末尾:
    source /opt/rh/devtoolset-9/enable
    
  • 在激活GCC 9的终端中启动R,先安装对应版本的RcppEigen,再安装DADA2:
    # 安装DADA2 v1.16依赖的RcppEigen版本
    devtools::install_version("RcppEigen", version = "0.3.3.9.1")
    # 安装DADA2
    devtools::install_github("benjjneb/dada2", ref = "v1.16")
    

方案二:修改RcppEigen源码(临时 workaround)

若无法升级编译器,可手动修改RcppEigen的源码替换FCONE宏:

  • 下载对应版本的RcppEigen源码包:
    wget https://cran.r-project.org/src/contrib/RcppEigen_0.3.3.9.1.tar.gz
    
  • 解压源码包:
    tar zxf RcppEigen_0.3.3.9.1.tar.gz
    
  • 编辑RcppEigen/src/fastLm.cpp文件,将第147行和151行的FCONE替换为(void*)0
  • 安装修改后的RcppEigen:
    R CMD INSTALL RcppEigen
    
  • 启动R,安装DADA2:
    devtools::install_github("benjjneb/dada2", ref = "v1.16")
    

内容的提问来源于stack exchange,提问作者IceMajor

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.24 22:06:22