version `GLIBCXX_3.4.9' not found

来源:互联网 发布:手机直播全套源码 编辑:程序博客网 时间:2024/05/16 12:08
[root@localhost ~]# arm-linux-gcc test.c -o test/opt/arm/toolschain/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 /opt/arm/toolschain/4.4.3/lib/libppl_c.so.2)/opt/arm/toolschain/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 /opt/arm/toolschain/4.4.3/lib/libppl.so.7)

用以下命令查看

[root@localhost ~]# 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
[root@localhost ~]#
可以看到libstdc++.so.6的最高版是GLIBCXX_3.4.8,而不是GLIBCXX_3.4.9,因此需要对libstdc++.so.6进行升级

方法1,参照这篇文章的做法http://wenku.baidu.com/view/ba4f4e222f60ddccda38a01a.html

直接下载较高版本的库libstdc++.so.6.0.10,网址http://download.csdn.net/source/1670346

先删除libstdc++.so.6

[root@localhost ~]# rm /usr/lib/libstdc++.so.6

rm:是否删除符号链接 “/usr/lib/libstdc++.so.6”? y

[root@localhost ~]#

然后将下载的libstdc++.so.6.0.10复制到/usr/lib/目录下面

[root@localhost ~]# cp /smbroot/libstdc++.so.6.0.10 /usr/lib/

[root@localhost ~]#

再建立符号链接

[root@localhost ~]# ln -s /usr/lib/libstdc++.so.6.0.10 /usr/lib/libstdc++.so.6

[root@localhost ~]#

检验是否替换完成

[root@localhost ~]# 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_3.4.9

GLIBCXX_3.4.10

GLIBCXX_FORCE_NEW

GLIBCXX_DEBUG_MESSAGE_LENGTH

[root@localhost ~]#

重新测试交叉编译是否能用

[root@localhost ~]# arm-linux-gcc test.c -o test

[root@localhost ~]#

编译成功,执行

[root@localhost ~]# ./test

bash: ./test: cannot execute binary file

https://www.cnblogs.com/yiru/archive/2012/11/15/2771226.html

原创粉丝点击