怎样获得你的系统中使用的C++标准库的版本

使用locate找到你系统中有的libstdc++.so文件,然后看最后两个数字,然后在下面的网址中去查找就可以了。
例如我的系统的locate输出为:

$ locate libstdc++.so
/xx/libstdc++.so.6
/xx/libstdc++.so.6.0.13
/sometool/linux-x86-64/shlib/libstdc++.so.5
/usr/lib/libstdc++.so.6
/usr/lib/libstdc++.so.6.0.19
/usr/lib/coverity-analysis/bin/libstdc++.so
/usr/lib/coverity-analysis/bin/libstdc++.so.6
/usr/lib/coverity-analysis/bin/libstdc++.so.6.0.20
/usr/lib/debug/usr/lib/gcc/x86_64-redhat-linux/4.8.2/libstdc++.so.debug
/usr/lib/debug/usr/lib64/libstdc++.so.6.0.19.debug
/usr/lib/debug/usr/lib64/libstdc++.so.6.debug
/usr/lib/debug/usr/lib64/libstdc++.so.debug
/usr/lib/gcc/x86_64-redhat-linux/4.8.2/libstdc++.so
/usr/lib/gcc/x86_64-redhat-linux/4.8.2/32/libstdc++.so
/usr/lib64/libstdc++.so.6
/usr/lib64/libstdc++.so.6.0.19

从上面可以看出,我的系统上安装了以下版本的g++:

libstdc++.so.5
4.8.2
6.0.13
6.0.19
6.0.20

第一个需要使用strings命令来查找:

strings /xxx/libstdc++.so.5|grep LIB  
GLIBCPP_3.2
GLIBCPP_3.2.1
GLIBCPP_3.2.2
GLIBCPP_3.2.3

所以它对应的C++版本时GCC 3.3.3;
第二个一看就是4.8.2

后面三个,只要更具版本号就可以在下面的网址查询到,分别是:GCC 4.4.2, GCC 4.8.3, GCC 4.9.0

Note:有时候你用命令找出来的版本可以在这个网址上找不到,原因可能是你的系统是发行商自己基于某个snapshot,自己编译的。
https://gcc.gnu.org/onlinedocs/libstdc++/manual/abi.html#abi.versioning

你可能感兴趣的:(C/C++/Linux)