Linux學習總結(六)靜態庫和動態庫的製作

2021-10-13 03:12:35 字數 802 閱讀 9655

命名格式:

1.以lib開頭

2.靜態庫名

3.a結尾

例如:libsort.a

優點:

缺點:使用場合:

1、得到*.o:gcc a.c b.c c.c -c

2、得到靜態庫libmytest.a

ar rcs libmytest.a a.o b.o c.o(就是乙個打包.o檔案的過程)

檢視庫中的符號(函式、全域性變數等):nm libmytest.a

共享庫的**是在可執行程式執行時才載入記憶體的,在編譯過程中僅簡單的引用,因此**體積較小。

優點:

缺點:

使用場合:對速度要求不是很強烈的地方都應使用動態庫

注意事項:冬天庫是否載入到記憶體,取決於程式是否執行

命名格式:

1.lib開頭

2.動態庫名

2.so結尾

例如:libmytest.so

1、生成「與位置無關」的目標檔案

gcc -fpic a.c b.c c.c -c

2、製作動態庫

gcc -shared -o libmytest.so a.o b.o c.o

-shared:製作動態庫

-o:重新命名生成的新檔案

3、使用動態庫

ld_library_path:

Linux學習(六) 靜態庫和動態庫

在windows中安裝好的軟體目錄下會看到一大堆以lib,dll字尾的檔案。而且有時候玩遊戲或者執行軟體的時候經常會遇到無法執行,因為缺少 dll,而這些就是軟體執行需要的庫,也就是原始碼編譯後的檔案。本質上說庫是一種可執行的二進位制檔案,可以直接被作業系統載入記憶體執行。庫有兩種 靜態庫和動態庫。...

Linux學習總結(六)

一 簡單了解 linux是多使用者多工的作業系統,比如我的chy,就是向管理員申請的賬戶 二 使用者管理 存放使用者資訊 etc passwd 存放使用者組資訊 etc group 存放使用者密碼 etc shadow 新增新的使用者 useradd g 指定使用者主組 id 組名 比如 g 100...

linux靜態和動態庫的使用總結

lib總結 很值參考 1.靜態庫.a中的各符號和各.c不能重定義.2.動態庫.so則是可以,它會覆蓋定義,使用的是最左的庫定義.3.本檔案中定義總是最優先的.4.靜態庫參加鏈結時必須要依懶的放左邊,被依賴的放右邊.5.靜態庫中的檔名卻是可以與外鏈結的c檔案同名的.ar t lib a 顯示庫檔案中有...