RHEL 5安装arm-linux-gcc-4.4.3.tar.gz后,编译报/usr/lib/libstdc++.so.6: version `GLIBCXX_3.4.9' not found 错,解决办法!

来源:互联网 发布:mac怎么看文件夹路径 编辑:程序博客网 时间:2024/05/17 08:00

问题:RHEL 5安装arm-linux-gcc-4.4.3.tar.gz后,make不能通过,报如下错误:
“/usr/local/arm/4.4.3/bin/../libexec/gcc/arm-none-linux-gnueabi/4.4.3/cc1: /usr/lib/libstdc++.so.6: version `GLIBCXX_3.4.9' not found (required by /usr/local/arm/4.4.3/lib/libppl_c.so.2)
/usr/local/arm/4.4.3/bin/../libexec/gcc/arm-none-linux-gnueabi/4.4.3/cc1: /usr/lib/libstdc++.so.6: version `GLIBCXX_3.4.9' not found (required by /usr/local/arm/4.4.3/lib/libppl.so.7)
make[1]: *** [hello_world.o] Error 1
make[1]: Leaving directory `/home/u-boot-2009.08-21/examples/standalone'
make: *** [examples/standalone] Error 2”

 

解决办法:
# strings /usr/lib/libstdc++.so.6 | grep GLIBCXX
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_FORCE_NEW
您会发现正是缺少:GLIBCXX_3.4.9版本。

 

# ll /usr/lib/libstdc++.so.6
lrwxrwxrwx 1 root root 18 Jul  3  2010 /usr/lib/libstdc++.so.6 -> libstdc++.so.6.0.8
其实这里需要将libstdc++.so.6链接到更高版本的libstdc++.so.6.0.10。

 

从网上下载libstdc++.so.6.0.10,下载地址:http://211.100.26.91/source/3297959。然后把/usr/lib/libstdc++.so.6 -> /usr/lib/libstdc++.so.6.0.8
软链接删除(rm -rf /usr/lib/libstdc++.so.6),重新链接ln -s /usr/lib/libstdc++.so.6.0.10  /usr/lib/libstdc++.so.6。

 

# ll /usr/lib/libstdc++.so.6
lrwxrwxrwx 1 root root 28 Jun 18 18:43 /usr/lib/libstdc++.so.6 -> /usr/lib/libstdc++.so.6.0.10

重新编译,则上述“/usr/lib/libstdc++.so.6: version `GLIBCXX_3.4.9' not found ”问题解决。

原创粉丝点击