鏈接庫glibc的文件解釋

 

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

這是NISName Switch Service (NSS)兼容的進程

glibc NSS自動加載

libnss_dns

DNSNSS的進程

glibc NSS自動加載

libnss_files

文件查詢的NSS進程

glibc NSS自動加載

libnss_hesiod

Hesiod名稱服務的NSS進程

glibc NSS自動加載

libnss_nis

NISNSS進程

glibc NSS自動加載

libnss_nisplus

NISplusNSS進程

glibc NSS自動加載

libpcprofile

程序記數器統計進程

很少用到

libpthread

LinuxPosix 1003.1c多線程

多線程需要用到

libresolv

名稱解析器進程

名稱解析要用

Librt

異步調試進程

很少用到







發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章