有时我们经常需要查看当前系统的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,再用这套东东编译整个新系统。
glibc版本查看
|
| Just execute: ldd --version which comes with glibc package |
*但是,在ARM板上,不能通过 1)/lib/libc.so.6 2)ldd --version 命令查看到相应的gLibc版本,如何直接用命令查看呢?
来源:oschina
链接:https://my.oschina.net/u/164475/blog/77211