tdc++.so.6: version `GLIBCXX_3.4.29' not found

 

001、python程序报错如下:

 

002、问题分析

a、调用的是python程序

b、libstdc++.so.6是c++标准库

执行python程序时,需要调用c++标准库,libstdc++.so.6(lib = glib, 6 表示第6版),版本不匹配报错,无法找到:GLIBCXX_3.4.29。

 

003、确认调用的哪里的python程序

(base) [b20223040323@admin2 test_02]$ which python
~/anaconda3/bin/python

 

根据路径判断当前调用的python时anconda3环境中的python

因此,需要确认anconda3中对应的c++标准库是否存在GLIBCXX_3.4.29

 

004、在家目录中查找libstdc++.so.6文件

复制代码
(base) [b20223040323@admin2 test_02]$ find ~ -name "libstdc++.so.6"   ## 家目录中查找c++标准库文件
find: ‘/public/home/b20223040323/002_goat_pan_first’: 权限不够
find: ‘/public/home/b20223040323/001_backup_data’: 权限不够
/public/home/b20223040323/anaconda3/envs/py27/lib/libstdc++.so.6
/public/home/b20223040323/anaconda3/envs/py27/x86_64-conda-linux-gnu/lib/libstdc++.so.6
/public/home/b20223040323/anaconda3/envs/py11/lib/libstdc++.so.6
/public/home/b20223040323/anaconda3/envs/py36/lib/libstdc++.so.6
/public/home/b20223040323/anaconda3/envs/py38/lib/libstdc++.so.6
/public/home/b20223040323/anaconda3/envs/py38/x86_64-conda-linux-gnu/lib/libstdc++.so.6
/public/home/b20223040323/anaconda3/pkgs/aspera-cli-3.9.6-h5e1937b_0/lib/libstdc++.so.6
/public/home/b20223040323/anaconda3/pkgs/libstdcxx-ng-9.3.0-hd4cf53a_17/lib/libstdc++.so.6
/public/home/b20223040323/anaconda3/pkgs/gcc_impl_linux-64-13.1.0-hc4be1a9_0/x86_64-conda-linux-gnu/lib/libstdc++.so.6
/public/home/b20223040323/anaconda3/pkgs/gcc_impl_linux-64-9.5.0-h99780fb_19/x86_64-conda-linux-gnu/lib/libstdc++.so.6
/public/home/b20223040323/anaconda3/pkgs/libstdcxx-ng-11.2.0-h1234567_1/lib/libstdc++.so.6
/public/home/b20223040323/anaconda3/pkgs/libstdcxx-ng-12.2.0-h46fd767_19/lib/libstdc++.so.6
/public/home/b20223040323/anaconda3/pkgs/libstdcxx-ng-13.1.0-hfd8a6a1_0/lib/libstdc++.so.6
/public/home/b20223040323/anaconda3/lib/libstdc++.so.6   ## 调用的应该是这个
/public/home/b20223040323/software/edgeturbo-client/lib/libstdc++.so.6
复制代码

 

或者使用locate查找:

(base) [b20223040323@admin2 test_02]$ locate libstdc++.so.6
/usr/lib64/libstdc++.so.6            ## 可能调用的这个
/usr/lib64/libstdc++.so.6.0.19
/usr/share/gdb/auto-load/usr/lib64/libstdc++.so.6.0.19-gdb.py
/usr/share/gdb/auto-load/usr/lib64/libstdc++.so.6.0.19-gdb.pyc
/usr/share/gdb/auto-load/usr/lib64/libstdc++.so.6.0.19-gdb.pyo

 

005、找到c++标准库文件libstdc++.so.6之后,需要确认库文件中对用的 GLIBCxxx版本(关注默认调用的库文件)

a、很可能调用的anaconda中的c++标准库文件,因此先在该库文件中查询:

(base) [b20223040323@admin2 test_02]$ strings /public/home/b20223040323/anaconda3/lib/libstdc++.so.6 | grep -i "glibc"

 就是没有GLIBCxx_3.4.29.

 

在locate命令确认的c++标准库中查询:

(base) [b20223040323@admin2 test_02]$ strings /usr/lib64/libstdc++.so.6 | grep -i "glibc"

 

仍然没有GLIBCXX_.3.4.29.

 

006、以上初步确认的报错的原因,如何解决?

当前默认的python版本为3.9, 但是对应的c++标准库文件没有GLIBCXX_.3.4.29; 其他版本中是否存在该文件?

(base) [b20223040323@admin2 test_02]$ python --version
Python 3.9.18

 

复制代码
(base) [b20223040323@admin2 test_02]$ find ~ -name "libstdc++.so.6"
find: ‘/public/home/b20223040323/002_goat_pan_first’: 权限不够
find: ‘/public/home/b20223040323/001_backup_data’: 权限不够
/public/home/b20223040323/anaconda3/envs/py27/lib/libstdc++.so.6
/public/home/b20223040323/anaconda3/envs/py27/x86_64-conda-linux-gnu/lib/libstdc++.so.6
/public/home/b20223040323/anaconda3/envs/py11/lib/libstdc++.so.6       ##  这里有安装过的python11
/public/home/b20223040323/anaconda3/envs/py36/lib/libstdc++.so.6
/public/home/b20223040323/anaconda3/envs/py38/lib/libstdc++.so.6
/public/home/b20223040323/anaconda3/envs/py38/x86_64-conda-linux-gnu/lib/libstdc++.so.6
/public/home/b20223040323/anaconda3/pkgs/aspera-cli-3.9.6-h5e1937b_0/lib/libstdc++.so.6
/public/home/b20223040323/anaconda3/pkgs/libstdcxx-ng-9.3.0-hd4cf53a_17/lib/libstdc++.so.6
/public/home/b20223040323/anaconda3/pkgs/gcc_impl_linux-64-13.1.0-hc4be1a9_0/x86_64-conda-linux-gnu/lib/libstdc++.so.6
/public/home/b20223040323/anaconda3/pkgs/gcc_impl_linux-64-9.5.0-h99780fb_19/x86_64-conda-linux-gnu/lib/libstdc++.so.6
/public/home/b20223040323/anaconda3/pkgs/libstdcxx-ng-11.2.0-h1234567_1/lib/libstdc++.so.6
/public/home/b20223040323/anaconda3/pkgs/libstdcxx-ng-12.2.0-h46fd767_19/lib/libstdc++.so.6
/public/home/b20223040323/anaconda3/pkgs/libstdcxx-ng-13.1.0-hfd8a6a1_0/lib/libstdc++.so.6
/public/home/b20223040323/anaconda3/lib/libstdc++.so.6
/public/home/b20223040323/software/edgeturbo-client/lib/libstdc++.so.6
复制代码

 

查看对应的py11的c++标准库文件中是否存在GLIBCXX_3.4.29

(base) [b20223040323@admin2 test_02]$ strings /public/home/b20223040323/anaconda3/envs/py11/lib/libstdc++.so.6 | grep -i "glibc"

 

anaconda3 的python11中默认的有对应版本的文件。

 

007、解决方法,激活anconda3的python11环境,然后再运行程序。

复制代码
(base) [b20223040323@admin2 test_02]$ conda env list           ## 列出环境
# conda environments:
#
base                  *  /public/home/b20223040323/anaconda3
ascp                     /public/home/b20223040323/anaconda3/envs/ascp
py11                     /public/home/b20223040323/anaconda3/envs/py11
py27                     /public/home/b20223040323/anaconda3/envs/py27
py36                     /public/home/b20223040323/anaconda3/envs/py36
py38                     /public/home/b20223040323/anaconda3/envs/py38

(base) [b20223040323@admin2 test_02]$ conda activate py11      ## 激活python11
(py11) [b20223040323@admin2 test_02]$ python --version         ## 查看
Python 3.11.5
复制代码

 

008、测试程序

(py11) [b20223040323@admin2 test_02]$ time python3 test.py

前面的GLIBCxx_3.4.29报错消失.

 

参考:

01、https://blog.csdn.net/qq_35812205/article/details/129475497 

 

posted @   小鲨鱼2018  阅读(621)  评论(0编辑  收藏  举报
相关博文:
阅读排行:
· PowerShell开发游戏 · 打蜜蜂
· 在鹅厂做java开发是什么体验
· 百万级群聊的设计实践
· WPF到Web的无缝过渡:英雄联盟客户端的OpenSilver迁移实战
· 永远不要相信用户的输入:从 SQL 注入攻防看输入验证的重要性
历史上的今天:
2022-10-31 >chr1 <_io.TextIOWrapper name='result.fa' mode='w' encoding='UTF-8'>
2022-10-31 python 中实现将两个列表合并为字典
2022-10-31 linux 中实现文本的按列反转
2021-10-31 R语言中矩阵运算
2021-10-31 R语言实现计算两个向量的协方差、标准差、皮尔逊相关系数
2021-10-31 R语言统计 plink格式数据样本缺失率
2021-10-31 linux shell 统计plink格式样本缺失率
点击右上角即可分享
微信分享提示