`GLIBCXX_3.4.15' not found

来源:互联网 发布:mysql语句sql union 编辑:程序博客网 时间:2024/05/16 15:02

今天在编译完一个小程序,运行时报错:

prog1: /usr/lib64/libstdc++.so.6: version `GLIBCXX_3.4.15' not found (required by prog1)$ strings /usr/lib64/libstdc++.so.6|grep GLIBCXXGLIBCXX_3.4GLIBCXX_3.4.1GLIBCXX_3.4.2GLIBCXX_3.4.3GLIBCXX_3.4.4GLIBCXX_3.4.5GLIBCXX_3.4.6GLIBCXX_3.4.7GLIBCXX_3.4.8GLIBCXX_3.4.9GLIBCXX_3.4.10GLIBCXX_3.4.11GLIBCXX_3.4.12GLIBCXX_3.4.13GLIBCXX_FORCE_NEWGLIBCXX_DEBUG_MESSAGE_LENGTH

最高到了3.4.13,没有3.4.15版.

我是自己从源代码编译的gcc 4.8.5,应该是sudo make install没有抓到这个包.

在网上搜了搜,参考这篇文章:http://stackoverflow.com/questions/5216399/usr-lib-libstdc-so-6-version-glibcxx-3-4-15-not-found,把问题解决了:

1.在当时make的目录下找到如下文件:

gcc-build-4.8.2/x86_64-unknown-linux-gnu/libstdc++-v3/src/.libs/libstdc++.so.6.0.19,

strings libstdc++.so.6.0.19| grep GLIBCXXGLIBCXX_3.4GLIBCXX_3.4.1GLIBCXX_3.4.2GLIBCXX_3.4.3GLIBCXX_3.4.4GLIBCXX_3.4.5GLIBCXX_3.4.6GLIBCXX_3.4.7GLIBCXX_3.4.8GLIBCXX_3.4.9GLIBCXX_3.4.10GLIBCXX_3.4.11GLIBCXX_3.4.12GLIBCXX_3.4.13GLIBCXX_3.4.14GLIBCXX_3.4.15GLIBCXX_3.4.16GLIBCXX_3.4.17GLIBCXX_3.4.18GLIBCXX_3.4.19GLIBCXX_FORCE_NEWGLIBCXX_DEBUG_MESSAGE_LENGTH

包括了.15,应该可以!

把该文件拷贝到了/usr/lib64下.

然后将libstdc++.so.6指向libstdc++.so.6.0.19:

[root@localhost lib64]# rm -rf libstdc++.so.6[root@localhost lib64]# ln -s libstdc++.so.6.0.19 libstdc++.so.6

再次运行程序就好使了!


0 0