不灭的焱

革命尚未成功,同志仍须努力

作者:php-note.com  发布于:2019-10-16 20:13  分类:Linux_C  编辑

查看方式

通用方式:

ldd --version

Ubuntu/Deepin:

ls -l /lib/x86_64-linux-gnu/libc.so.6

CentOS:

ls -l /lib/libc.so.6

 


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库的版本号?

因为 ldd 命令是 glibc 提供的,所以也可通过它来查看 glib版本号:

wenjianbao@wjb-pc:~$ ldd --version
ldd (Debian GLIBC 2.24-11+deb9u3) 2.24
Copyright (C) 2016 自由软件基金会。
这是一个自由软件;请见源代码的授权条款。本软件不含任何没有担保;甚至不保证适销性
或者适合某些特殊目的。
由 Roland McGrath 和 Ulrich Drepper 编写。