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

本文介绍如何通过locate和strings命令找出系统中libstdc++的不同版本,并提供了一个具体的例子来展示如何确定对应的GCC版本。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

使用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

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值