1. 我们着手解决GLIBCXX的问题,C++库,首先查看错误信息提示中的lib文件的信息。
- $ strings /usr/lib64/libstdc++.so.6 | grep GLIBC
这里是打印 libstdc++.so.6的输出信息中限定(grep) GLIBC库的信息
- 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_3.4.11
- GLIBCXX_3.4.12
- GLIBCXX_3.4.13
- GLIBC_2.3
- GLIBC_2.2.5
- GLIBC_2.3.2
- GLIBCXX_FORCE_NEW
- GLIBCXX_DEBUG_MESSAGE_LENGTH
再
- $ll /usr/lib64/libstdc++.so.6
- lrwxrwxrwx 1 root root 30 Sep 23 06:21 /usr/lib64/libstdc++.so.6 -> /usr/lib64/libstdc++.so.6.0.13
也就是系统以前有一个6.0.13版本,确实比较旧了,那么我们有新版本么?我们安装了gcc 4.9.1,按理说应该已经装了新版的libstdC++.,如果没有,可以去网上下一个。
先在本机找:
- find / -name libstdc++.so.6*
我们发现,gcc安装时把/libstdc++.so.6.0.20 安装到了/usr/local/lib64下,但并没有改变libstdc++.so.6的链接指向。
那么我们手动来更新软连接(也可以字节指向/usr/local下的文件,不用拷贝, 看鸽子的文件管理习惯)
- $ cp /usr/local/lib64/libstdc++.so.6.0.20 /usr/lib64
- $ rm -rf /usr/lib64/libstdc++.so.6
- $ ln -s /usr/lib64/libstdc++.so.6.0.20 /usr/lib64/libstdc++.so.6
- $ strings /usr/lib64/libstdc++.so.6 | grep GLIBC
然后结果:
- 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_3.4.11
- GLIBCXX_3.4.12
- GLIBCXX_3.4.13
- GLIBCXX_3.4.14
- GLIBCXX_3.4.15
- GLIBCXX_3.4.16
- GLIBCXX_3.4.17
- GLIBCXX_3.4.18
- GLIBCXX_3.4.19
- GLIBCXX_3.4.20
- GLIBC_2.3
- GLIBC_2.2.5
- GLIBC_2.3.2
- GLIBCXX_FORCE_NEW
- GLIBCXX_DEBUG_MESSAGE_LENGTH
库更新完毕。我们已经支持到了GLIBCXX_3.4.20
此时再进行编译,GLIBCXX的问题是没有了。
所有评论(0)