一、靜態庫和共享庫
(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 系統中,靜態庫以存檔 一組連線起來的可重定位目標檔案的集合,有乙個頭部來描述成員目標...