glibc的链接文件
实际的共享链接库
- 这类文件名的格式为libLIBRAY_NAME-GLIBC_VERSION.so,其中LIBRAY_NAME为链接库的名称,
-
GLIBC_VERSION为使用glibc的套间的版本编号,glibc-2.2.3的数学链接库的名称为libm-2.2.3.so
- libm是LIBRAY_NAME,而2.2.3是libm的版本号,glibc-2.2.3的实际的共享链接库是libc-2.2.3.so
主修订版本的符号链接
:主修改版本的符号链接于实际的glibc的版本是不同的,以glibc2.2.3的实际的共享链接库为libc-2.2.3.so
-
而它的主修订版本的符号链接为6,相对而言,libdl-2.2.3.so的主修订版本编号为2
-
主修订版本的符号链接名称格式:
- libLIBRARY_NAME.so.MAJOR_REVISION_VERSION
- libLIBRARY_NAME是链接库的名字
- MAJOR_REVISION_VERSIO是链接库的主版本的编号
- dubuntu@euwy-laptop:/lib$ ls -l libc.so.6
- lrwxrwxrwx 1 root root 13 2006-03-05 15:38 libc.so.6 -> libc-2.3.6.so
-
主修订版本的符号链接名称格式:
与版本无关的符号链接指向主修订版本的符号链接
-
这些符号链接的主要功能,是为需要链接特定链接库的所有程序提供一个通用的条目,于主修订的版本无关
-
符号的格式:
- libLIBRARY_NAME.so
-
例如:libm.so指向的是libm.so.6,而libm.so.6指向的是libm-2.2.3.so
- $ ls -l libm.so
- lrwxrwxrwx 1 dubuntu users 9 2007-03-24 11:05 libm.so -> libm.so.6
- $ ls -l libm.so.6
- lrwxrwxrwx 1 dubuntu users 13 2007-03-24 11:05 libc.so.6 -> libc-2.3.2.so
-
符号的格式:
静态链接库包文件
-
选择以静态方式链接库的应用程序就会用到这些移植包。
-
静态链接库包文件格式:
- libLIBRARY_NAME.a
- 例如:静态包文件libdl.a
-
静态链接库包文件格式:
而我们在做嵌入移植的时候,只需要移植实际的共享链接库和主修订版本的符号链接就可以,
glibc的链接库组件和根文件系统的引用提示
链接库组件 | 内 容 | 引用提示 |
ld | 动态链接器 | 必要 |
libBrokernLocale | 修正进程,让local特性有问题的应用程序得以正常执行 | 很少用到
|
libSegFault | 用来捕捉内存区段错误以及今欣回溯的进程 | 很少用到 |
libanl | 异步名称查询进程 | 很少用到 |
libc | 主C链接库进程 | 必要 |
libcrypt | 密码学进程 | 大多数需要认证程序会用到,如apache |
libdl | 用来动态加载共享目的文件进程 | 使用dlopen()函数的程序会用到 |
libm | glibc的数学进程 | 数学函数需要用到 |
libmemusage | 用来进行堆(heap)和栈(stack)内存统计的进程 | 很少用到 |
libnsl | NIS网络服务链接进程 | 很少用到 |
libnss_compat | 这是NIS与Name Switch Service (NSS)兼容的进程 | 由glibc NSS自动加载 |
libnss_dns | DNS的NSS的进程 | 由glibc NSS自动加载 |
libnss_files | 文件查询的NSS进程 | 由glibc NSS自动加载 |
libnss_hesiod | Hesiod名称服务的NSS进程 | 由glibc NSS自动加载 |
libnss_nis | NIS的NSS进程 | 由glibc NSS自动加载 |
libnss_nisplus | NIS的plus的NSS进程 | 由glibc NSS自动加载 |
libpcprofile | 程序记数器统计进程 | 很少用到 |
libpthread | Linux的Posix 1003.1c多线程 | 多线程需要用到 |
libresolv | 名称解析器进程 | 名称解析要用 |
Librt | 异步调试进程 | 很少用到 |
|
|
|
|
|
|
链接:http://blog.youkuaiyun.com/My_emdebed/article/details/1574746