GLIBCXX_3.4.9' not found - 解决办法

走远了吗. 提交于 2019-11-28 12:28:12

在Linux中安装交叉编译器arm-linux-gcc 4.4.3,然后编译mini2440内核出错: 
/usr/lib/libstdc++.so.6: version GLIBCXX_3.4.9' not found: 
在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内核正确运行。

易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!