Linux系统glibc库版本信息查看

以下内容参考自:

https://www.cnblogs.com/dux2016/p/6229283.html

https://blog.csdn.net/feisy/article/details/17792093

1. CentOS

/lib/i386-linux-gnu/libc.so.6

 或

rpm -qi glibc

ls -l /lib/libc.so.6

 

2. Ubuntu

ls -l /lib/i386-linux-gnu/libc.so.6 (32bit)
ls -l /lib/x86_64-linux-gnu/libc.so.6(64bit)

 或

apt-cache show libc6


有时我们经常需要查看当前系统的glibc版本,可以这样查看:

/lib/libc.so.6

有时:/lib/x86-64-linux/libc.so.6
把这个文件当命令执行一下

为什么这个库可以直接run呢? 原来在libc的代码中有一点小手脚:

Makerules:586:LDFLAGS-c.so += -e __libc_main 

csu/version.c:71:__libc_main (void) 

void 
__libc_main (void) 

  __libc_print_version (); 
  _exit (0); 

或者:

因为ldd命令也是glibc提供的,所以也能查看

ldd  --version

glibc是什么,以及与gcc的关系?
glibc是gnu发布的libc库,也即c运行库。glibc是linux 系统中最底层的api(应用程序开发接口),几乎其它任何的运行库都会倚赖于glibc。glibc除了封装linux操作系统所提供的系统服务外,它本 身也提供了许多其它一些必要功能服务的实现,主要的如下:
(1)string,字符串处理
(2)signal,信号处理
(3)dlfcn,管理共享库的动态加载
(4)direct,文件目录操作
(5)elf,共享库的动态加载器,也即interpreter
(6)iconv,不同字符集的编码转换
(7)inet,socket接口的实现
(8)intl,国际化,也即gettext的实现
(9)io
(10)linuxthreads
(11)locale,本地化
(12)login,虚拟终端设备的管理,及系统的安全访问
(13)malloc,动态内存的分配与管理
(14)nis
(15)stdlib,其它基本功能
gcc 是编译器,基本上 Linux 下所有的程序(包括内核)都是 gcc 编译的,libc 当然也是。
gcc 和 libc 是互相依赖的两个软件,它们合作的方式类似 Linux 系统的 "自举"。先在一个可以运行的带有老 libc 和 gcc 的系统上,用老 gcc 编译出一个新版本的 gcc + 老 libc,再用这个新 gcc 编译出一个新 gcc + 新 libc,再用这套东东编译整个新系统。

glib版本查看

Just execute:

ldd --version

which comes with glibc package

猜你喜欢

转载自blog.csdn.net/qiuchangyong/article/details/79767362
今日推荐