/usr/lib/libstdc++.so.6: version `GLIBCXX_3.4.9' not found~解决办法

本文介绍了解决在RHEL5环境下使用arm-linux-gcc4.4.3交叉编译mini2440开发板程序时遇到的libstdc++版本不匹配问题的方法。通过更新libstdc++版本,最终成功完成交叉编译。

交叉编译mini2440开发板上的程序时出现如下错误:

RHEL5中安装交叉编译器arm-linux-gcc 4.4.3,然后交叉编译mini2440上的程序时出错:

 /usr/lib/libstdc++.so.6: version `GLIBCXX_3.4.9' not found

 

分析:

 

执行strings /usr/lib/libstdc++.so.6 | grep GLIBC

返回结果没有GLIBCXX_3.4.9

 

GLIBCXX_3.4

GLIBCXX_3.4.1

GLIBCXX_3.4.2

GLIBCXX_3.4.3

GLIBCXX_3.4.4

GLIBCXX_3.4.5

GLIBCXX_3.4.6

GLIBCXX_3.4.7

GLIBCXX_3.4.8

GLIBC_2.0

GLIBC_2.3

GLIBC_2.4

GLIBC_2.3.4

GLIBC_2.1

GLIBC_2.1.3

GLIBC_2.2

GLIBCXX_FORCE_NEW

GLIBCXX_DEBUG_MESSAGE_LENGTH

 

执行ls -l /usr/lib/libstdc++.so.6

发现/usr/lib/libstdc++.so.6 -> /usr/lib/libstdc++.so.6.0.8,其实这里需要使用

libstdc++.so.6.0.10

 

分析得知:RHEL5自带的libstdc++.so.6指向的是libstdc++.so.6.0.8,版本太低。

从网上下载安装包:libstdc++-4.3.2-7.i386.rpm,更新版本。

 

 

解决办法:

 

1、下载RPM包:

http://kojipkgs.fedoraproject.org/packages/gcc/4.3.2/7/i386/libstdc++-4.3.2-7.i386.rpm

 

拷贝到虚拟机下/opt

 

2、提取包并将生成的libstdc++库文件考到到/usr/lib

 

#rpm2cpio libstdc++-4.3.2-7.i386.rpm | cpio -idv

则在当前目录下生成./usr/lib目录,包含:libstdc++.so.6.0.10 、软连接和 libstdc++.so.6

将生成的libstdc++.so.6.0.10 、软连接和 libstdc++.so.6拷贝到/usr/lib下:

#cp libstdc++* /usr/lib -a

查看

ls -l libstdc++.so.6

显示

/usr/lib/libstdc++.so.6 -> /usr/lib/libstdc++.so.6.0.10

 

3执行strings /usr/lib/libstdc++.so.6 | grep GLIBC

返回结果包含GLIBCXX_3.4.9

 

GLIBCXX_3.4

GLIBCXX_3.4.1

GLIBCXX_3.4.2

GLIBCXX_3.4.3

GLIBCXX_3.4.4

GLIBCXX_3.4.5

GLIBCXX_3.4.6

GLIBCXX_3.4.7

GLIBCXX_3.4.8

GLIBCXX_3.4.9

GLIBCXX_3.4.10

GLIBC_2.0

GLIBC_2.3

GLIBC_2.4

GLIBC_2.3.4

GLIBC_2.1

GLIBC_2.1.3

GLIBC_2.2

GLIBCXX_FORCE_NEW

GLIBCXX_DEBUG_MESSAGE_LENGTH

 

4  、这时,交叉编译Mini2440上的程序时可以正确运行。

 

参考链接:

http://archive.cnblogs.com/a/2073076/

引用\[1\]:查看一下报错环境位置的libstdc++.so.6情况 strings /home/xxx/tools/miniconda3/envs/open-mmlab/lib/python3.7/site-packages/mmcv/_ext.cpython-37m-x86_64-linux-gnu.so | grep GLIBC 。 引用\[2\]:拷贝高版本的libstdc++.so到/usr/lib64目录下,并重新建立软连接 cp /root/anaconda3/envs/faceswap/lib/libstdc++.so.6.0.31 /usr/lib64/ ln -sf /usr/lib64/libstdc++.so.6.0.31 /usr/lib64/libstdc++.so.6 。 引用\[3\]:发现确实没有 version `GLIBCXX_3.4.29’ (open-mmlab) \[xxx@gpu07 mmsegmentation\]$ strings /home/xxx/tools/miniconda3/envs/open-mmlab/lib/python3.7/site-packages/mmcv/_ext.cpython-37m-x86_64-linux-gnu.so | grep GLIBC GLIBC_2.2.5 GLIBC_2.14 GLIBCXX_3.4.18 GLIBCXX_3.4.26 GLIBCXX_3.4.9 GLIBCXX_3.4 原因分析: 。 问题:/usr/lib/libstdc++.so.6: version `GLIBCXX_3.4.32' not found 回答: 这个问题的原因是在报错环境中找不到`GLIBCXX_3.4.32`版本的`libstdc++.so.6`。为了解决这个问题,你可以按照以下步骤进行操作。首先,使用命令`strings /home/xxx/tools/miniconda3/envs/open-mmlab/lib/python3.7/site-packages/mmcv/_ext.cpython-37m-x86_64-linux-gnu.so | grep GLIBC`查看报错环境中的`libstdc++.so.6`的情况。然后,根据引用\[2\]的建议,将高版本的`libstdc++.so`拷贝到`/usr/lib64`目录下,并重新建立软连接。具体命令为`cp /root/anaconda3/envs/faceswap/lib/libstdc++.so.6.0.31 /usr/lib64/`和`ln -sf /usr/lib64/libstdc++.so.6.0.31 /usr/lib64/libstdc++.so.6`。最后,再次检查`libstdc++.so.6`的版本,确保已经包含了`GLIBCXX_3.4.32`。 #### 引用[.reference_title] - *1* *3* [集群报错 /lib64/libstdc++.so.6: version `GLIBCXX_3.4.29not found](https://blog.csdn.net/yirui50/article/details/125462458)[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* [conda环境下“/lib64/libstdc++.so.6: version `GLIBCXX_3.4.20‘ not found”问题解决](https://blog.csdn.net/lsb2002/article/details/131456857)[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、付费专栏及课程。

余额充值