鏈結庫glibc的檔案解釋

2021-04-12 22:29:29 字數 2417 閱讀 8421

[

編輯]實際的共享鏈結庫

這類檔名的格式為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

[ 編輯]

主修訂版本的符號鏈結

而它的主修訂版本的符號鏈結為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

而我們在做嵌入移植的時候,只需要移植實際的共享鏈結庫和主修訂版本的符號鏈結就可以,

[ 編輯]

鏈結庫元件

內 容引用提示

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

非同步除錯程序

很少用到

gdb 鏈結 庫檔案

可執行檔案分兩種 1.預設的為 release版本,也可以叫發行版本,使用者使用 2.debug版本,也叫開發版本,開發者使用 1.編譯過程中手動加入debug資訊,生成對應 o檔案 例如 gcc c main.c g 2.鏈結不會加入鏈結檔案,對上述的 o檔案進行鏈結,例如 gcc o run m...

動態鏈結庫 靜態鏈結庫

包含標頭檔案和庫 idir 指定編譯查詢標頭檔案的目錄,常用於查詢第三方的庫的標頭檔案,例 gcc test.c i.inc o test。ldir 指定鏈結時查詢lib的目錄,常用於查詢第三方庫。llibrary 指定額外鏈結的lib庫 巨集定義 dmacro 以字串 1 預設值 定義 macro...

靜態鏈結庫 動態鏈結庫

庫是寫好的現有的,成熟的,可以復用的 現實中每個程式都要依賴很多基礎的底層庫,不可能每個人的 都從零開始,因此庫的存在意義非同尋常。本質上來說庫是一種可執行 的二進位制形式,可以被作業系統載入記憶體執行。庫有兩種 靜態庫 a lib 和動態庫 so dll windows上對應的是.lib dll ...