Linux 靜態庫與共享庫

2021-07-14 05:47:30 字數 742 閱讀 6430

一、靜態庫和共享庫

(1)、靜態庫(

.a(2)、共享庫(

.so或.sa

二、生成

(1)、生成共享庫

–編譯選項

shared:

表示生成共享庫格式

fpic

:產生位置無關碼

(position independent code)

–庫名規則:

lib+***

+版本號

.so

–示例:

gcc–shared –

fpic

test.o

–o libtest.so

若有版本號,需帶上版本號碼

(2)、使用共享庫

–編譯選項 l

:鏈結共享庫,只要庫名即可(去掉

lib) l

:鏈結庫所在的路徑

.(指定

so路徑)

–示例:

gcc–o test –l./ -

ltest

三、執行共享庫設定

(1)、拷貝

.so檔案到系統共享庫路徑下

–一般指

/usr

/lib  /user/local/lib

(2)、ldconfig

–ld.so.conf

–ldconfig

–更新ld.so.cache

(3)、更改

ld_library_path

Linux 靜態庫與共享庫

可以把 多個編譯好的目標檔案 打包成為乙個檔案,就是庫檔案。庫檔案有兩種 靜態庫 a 和共享庫 so 靜態庫和共享庫區別 靜態庫是 函式的歸檔,在使用時,複製函式的 區到最終的檔案中。共享庫是 函式的歸檔,在使用時,把函式在共享庫中的位址拿到最終的檔案中。靜態庫的效率稍高一點,但占用空間非常大,而且...

靜態庫與共享庫

編寫使用靜態庫 靜態庫 共享庫 是包含了目標檔案的檔案,這些目標檔案被稱為模板或成員,是可以重用的預編譯 它們以特殊的格式和乙個表或者對映儲存在一起,這個表或者對映將符號名和儲存該符號的成員名字鏈結起來。對映加速了編譯和鏈結過程,靜態庫一般以副檔名.a 代表存檔檔案,archive 命名。為了使用庫...

靜態庫與共享庫

1.靜態庫 所有編譯器都提供一種機制,將所有相關的目標檔案模組兒打包成乙個單獨的檔案,被稱為靜態庫。它可以用作來聯結器的輸入,當聯結器構造乙個輸入的可執行檔案時,它只拷貝靜態庫裡面被應用程式引用的模組兒。在unix 系統中,靜態庫以存檔 一組連線起來的可重定位目標檔案的集合,有乙個頭部來描述成員目標...