libc、glibc和musl详解 ldd查看依赖动态库
- 2015-06-24 21:35:00
- admin
- 原创 10465
一、什么是libc、glibc和musl
1、libc只包含C标准库,不包含POSIX标准接口;
2、glibc实现了C标准库、POSIX标准接口、GNU扩展接口;
3、musl实现了C标准库、POSIX标准接口,非常小巧轻量;
4、glibc官网:https://sourceware.org/glibc
5、musl官网:https://musl.libc.org
1、安装动态库:yum install glibc
2、安装静态库:yum install glibc-static
3、libc文件位置:/usr/lib64/libc.so、/usr/lib64/libc.a
二、查看glibc版本
[root@ebs-19233 ~]# /lib64/libc.so.6
GNU C Library stable release version 2.12, by Roland McGrath et al.
Copyright (C) 2010 Free Software Foundation, Inc.
This is free software; see the source for copying conditions.
There is NO warranty; not even for MERCHANTABILITY or FITNESS FOR A
PARTICULAR PURPOSE.
Compiled by GNU CC version 4.4.7 20120313 (Red Hat 4.4.7-11).
Compiled on a Linux 2.6.32 system on 2015-05-27.
Available extensions:
The C stubs add-on version 2.1.2.
crypt add-on version 2.1 by Michael Glad and others
GNU Libidn by Simon Josefsson
Native POSIX Threads Library by Ulrich Drepper et al
BIND-8.2.3-T5B
RT using linux kernel aio
libc ABIs: UNIQUE IFUNC
For bug reporting instructions, please see:
<http://www.gnu.org/software/libc/bugs.html>.
[root@ebs-19233 ~]# strings /lib64/libc.so.6 | grep GLIBC
GLIBC_2.2.5
GLIBC_2.2.6
GLIBC_2.3
GLIBC_2.3.2
GLIBC_2.3.3
GLIBC_2.3.4
GLIBC_2.4
GLIBC_2.5
GLIBC_2.6
GLIBC_2.7
GLIBC_2.8
GLIBC_2.9
GLIBC_2.10
GLIBC_2.11
GLIBC_2.12
GLIBC_PRIVATE
[root@ebs-19233 ~]# ldd --version
ldd (GNU libc) 2.12
Copyright (C) 2010 Free Software Foundation, Inc.
This is free software; see the source for copying conditions. There is NO
warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
三、查看依赖动态库
1、ldd program,会加载依赖库,可以定位缺失依赖库;
2、objdump -p program | grep NEEDED,只能查看直接依赖库;
3、readelf -d program | grep NEEDED,只能查看直接依赖库;
4、ldd可能会执行程序,如果是未知程序,建议使用objdump;
[root@ebs-19233 ~]# ldd /bin/sh
linux-vdso.so.1 => (0x00007fffc7361000)
libtinfo.so.5 => /lib64/libtinfo.so.5 (0x0000003207c00000)
libdl.so.2 => /lib64/libdl.so.2 (0x00007fcdec97b000)
libc.so.6 => /lib64/libc.so.6 (0x00007fcdec5e6000)
/lib64/ld-linux-x86-64.so.2 (0x00007fcdecb89000)