Rtidyverse包安装报错/lib64/libstdc++.so.6: version `CXXABI_1.3.9'

本文详细记录了解决R语言中tidyverse包加载失败的问题,由于/lib64/libstdc++.so.6缺少CXXABI_1.3.9版本,通过查找并更新动态库实现修复。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

报错信息

  • /lib64/libstdc++.so.6 目录文件, 没有CXXABI_1.3.9这个版本
  • 而这个版本是需要的, 因为tidyr.so需要调用它
Error: package or namespace load failed for ‘tidyverse’ in dyn.load(file, DLLpath = DLLpath, ...):
 unable to load shared object '/home/dengfei/anaconda3/lib/R/library/tidyr/libs/tidyr.so':
  /lib64/libstdc++.so.6: version `CXXABI_1.3.9' not found (required by /home/dengfei/anaconda3/lib/R/library/tidyr/libs/tidyr.so)

解决思路

  • 查看/lib64/libstdc++.so.6的拥有的版本号, 一般来说是版本太老
  • 在服务器上找到这个动态库(肯定有新的)
  • 将新的动态库copy到路径下
  • 将软链接libstdc++.so.6关联新的文件

1. 查看/lib64/libstdc++.so.6版本号

(base) [root@localhost bin]# strings /lib64/libstdc++.so.6 |grep CXXABI
CXXABI_1.3
CXXABI_1.3.1
CXXABI_1.3.2
CXXABI_1.3.3
CXXABI_1.3.4
CXXABI_1.3.5
CXXABI_1.3.6
CXXABI_1.3.7
CXXABI_TM_1

可以看到, 里面没有CXXABI_1.3.9这个版本

2. 查看服务器上, 还有没有其它的libstdc++.so.6库, 并查看他的版本是否有CXXABI_1.3.9

find / -name 'libstdc++.so'
/root/anaconda3/pkgs/libstdcxx-ng-8.2.0-hdf63c60_1/lib/libstdc++.so
/root/anaconda3/pkgs/libstdcxx-ng-8.2.0-hdf63c60_1/x86_64-conda_cos6-linux-gnu/sysroot/lib/libstdc++.so
/root/anaconda3/pkgs/gxx_impl_linux-64-7.3.0-hdf63c60_1/x86_64-conda_cos6-linux-gnu/lib/libstdc++.so

可以看到, 我的anaconda中已经有这个库了, 查看一下是否有版本CXXABI_1.3.9

(base) [root@localhost bin]# strings /root/anaconda3/pkgs/libstdcxx-ng-8.2.0-hdf63c60_1/lib/libstdc++.so | grep 'CXXABI'
CXXABI_1.3
CXXABI_1.3.1
CXXABI_1.3.2
CXXABI_1.3.3
CXXABI_1.3.4
CXXABI_1.3.5
CXXABI_1.3.6
CXXABI_1.3.7
CXXABI_1.3.8
CXXABI_1.3.9
CXXABI_1.3.10
CXXABI_1.3.11
CXXABI_TM_1
CXXABI_FLOAT128
CXXABI_1.3
CXXABI_1.3.11
CXXABI_1.3.2
CXXABI_1.3.6
CXXABI_FLOAT128
CXXABI_1.3.9
CXXABI_1.3.1
CXXABI_1.3.5
CXXABI_1.3.8
CXXABI_1.3.4
CXXABI_TM_1
CXXABI_1.3.7
CXXABI_1.3.10
CXXABI_1.3.3

可以看到, 是有CXXABI_1.3.9版本的.

查看一下它真正的文件, 使用ls -l命令

(base) [root@localhost bin]# ls -l /root/anaconda3/pkgs/libstdcxx-ng-8.2.0-hdf63c60_1/lib/libstdc++.so  
lrwxrwxrwx. 1 root root 19 Jan 15 16:22 /root/anaconda3/pkgs/libstdcxx-ng-8.2.0-hdf63c60_1/lib/libstdc++.so -> libstdc++.so.6.0.25

libstdc++.so.6.0.25这个文件才是我们需要的.

将动态库复制到目标路径下:

 cp /root/anaconda3/pkgs/libstdcxx-ng-8.2.0-hdf63c60_1/lib/libstdc++.so.6.0.25 /lib64/

查看文件

(base) [root@localhost lib64]# ls -l libstdc++.so.6*
lrwxrwxrwx. 1 root root      19 Mar  2 13:06 libstdc++.so.6 -> libstdc++.so.6.0.19
-rwxr-xr-x. 1 root root  991616 Oct 30  2018 libstdc++.so.6.0.19
-rwxr-xr-x. 1 root root 9536208 May 15 13:48 libstdc++.so.6.0.25

这里, 将动态库libstdc++.so.6的链接由libstdc++.so.6.0.19, 变为libstdc++.so.6.0.25即可.

这里的ln -sf 是强制覆盖创建软链接.

(base) [root@localhost lib64]# ln -sf libstdc++.so.6.0.25 libstdc++.so.6
(base) [root@localhost lib64]# ls -l libstdc++.so.6*
lrwxrwxrwx. 1 root root      19 May 15 13:51 libstdc++.so.6 -> libstdc++.so.6.0.25
-rwxr-xr-x. 1 root root  991616 Oct 30  2018 libstdc++.so.6.0.19
-rwxr-xr-x. 1 root root 9536208 May 15 13:48 libstdc++.so.6.0.25
(base) [root@localhost lib64]# 

搞定.

回答: 出现这个错误是因为在编译过程中,需要找到版本为CXXABI_1.3.9libstdc++.so.6动态库,但系统中只有较低版本的动态库。\[1\]这个问题的解决方法是更新libstdc++.so.6动态库。可以通过以下步骤来解决这个问题:首先,下载最新版本的libstdc++.so.6动态库,比如libstdc++.so.6.0.26。\[3\]然后,将下载的动态库复制到系统的/usr/lib64目录下。最后,使用软链接将libstdc++.so.6.0.26链接到libstdc++.so.6,以便系统可以找到并使用新的动态库。\[3\]这样就可以解决gcc编译报错的问题了。 #### 引用[.reference_title] - *1* *3* [Error: /lib64/libstdc++.so.6: version `CXXABI_1.3.9‘ not found](https://blog.csdn.net/xiangzaixiansheng/article/details/131221887)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v91^insertT0,239^v3^insert_chatgpt"}} ] [.reference_item] - *2* [报错信息ImportError: /lib64/libstdc++.so.6: version `CXXABI_1.3.9‘ not found (required by.............](https://blog.csdn.net/qq_35985044/article/details/128265302)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v91^insertT0,239^v3^insert_chatgpt"}} ] [.reference_item] [ .reference_list ]
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值