查看方式
通用方式:
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 编写。