GLIBCXX_3.4.9' not found - 解决办法

来源:互联网 发布:淘宝卖家中心手机版下载 编辑:程序博客网 时间:2024/05/17 07:35

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内核正确运行。

0 0