RStudio加载Seurat包报错缺少GLIBCXX_3.4.26版本如何解决
R加载Seurat包GLIBCXX版本缺失报错解决方案
报错中文翻译
错误:加载'Seurat' 包或命名空间加载失败,执行 dyn.load(file, DLLpath = DLLpath, ...) 时出错: 无法加载共享对象 '/wdata/msmuhammad/workbench/miniconda3/envs/test3/lib/R/library/Rcpp/libs/Rcpp.so': /usr/lib/x86_64-linux-gnu/libstdc++.so.6: 版本 `GLIBCXX_3.4.26' 未找到(/wdata/msmuhammad/workbench/miniconda3/envs/test3/lib/R/library/Rcpp/libs/Rcpp.so 依赖该版本)
问题原因
- 报错核心是系统自带的
libstdc++.so.6版本低于Rcpp包编译时要求的最低版本,缺少GLIBCXX_3.4.26版本标识 - 当前使用的是conda虚拟环境中的R运行环境,Rcpp包是基于高版本编译工具链生成的,和系统自带的低版本C++标准库不兼容
解决方案
方案1:conda环境安装高版本libgcc依赖(优先推荐)
无需修改系统全局配置,仅对当前conda环境生效:
- 终端执行命令激活对应环境:
conda activate test3 - 安装conda-forge源的高版本libgcc依赖:
conda install -c conda-forge libgcc-ng - 安装完成后重启RStudio,重新加载Seurat包即可。
方案2:临时指定动态库加载优先级(方案1无效时使用)
如果安装依赖后仍报错,可在启动RStudio前临时设置动态库搜索优先级,优先加载conda环境内的动态库:
- 终端激活test3环境后执行:
export LD_LIBRARY_PATH=/wdata/msmuhammad/workbench/miniconda3/envs/test3/lib:$LD_LIBRARY_PATH - 在当前终端窗口启动RStudio,即可正常加载包。
方案3:源码重装Rcpp包
上述方案均不生效时,可在激活conda环境的状态下,在R中重新编译安装Rcpp:install.packages("Rcpp", type = "source")
编译完成后再尝试加载Seurat包即可。
内容的提问来源于stack exchange,提问作者Muhammad Elsadany
相关产品推荐
相关产品推荐

