您的位置:首页 > 其它

GLIBCXX_3.4.9' not found - 解决办法

2014-09-04 08:29 435 查看
在RHEL5中安装交叉编译器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内核正确运行。
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: 
相关文章推荐