靜態庫和動態庫的製作和使用

2021-10-01 23:39:36 字數 989 閱讀 1717

linux下的靜態庫為lib*.a格式的二進位制檔案(目標檔案),對應於windows下的.lib格式的檔案。

lib+庫名字+ .a libmytest.a ,則庫名字為mytest。

(1)生成對應的 .o檔案 gcc *.c -c ==== *.c --> *.o

(2)將生成的 *.o檔案打包 ar

rcs + 靜態庫名稱(libmytest.a)+所有 .o檔案

提供靜態庫和標頭檔案

linux下的動態庫為lib*.so格式的二進位制檔案(目標檔案),對應於windows下的.dll格式的檔案。

lib+庫名字+ .so libmytest.so ,則庫名字為mytest。

1)生成與位置無關的**(.o

gcc -fpic -c *.c

.c—>.o

2)將.o檔案打包成動態庫(共享庫)

gcc -shared *.o -o libmytest.so (-i ./head.h) 將所有.o檔案打包到動態庫libmytest.so中

提供 .so庫和標頭檔案

使用如下:

發現缺少mytest共享庫鏈結,需要將libmytest.so路徑加入到系統環境變數中

1).臨時測試

環境變數: ld_library_path,將動態庫的路徑設定給該變數

將設定的值, 匯入到系統環境變數中: export ld_library_path = 路徑

當終端關閉, 設定會失效

2).常用的方法(永久設定)

需要找動態聯結器的配置檔案 – /etc/ld.so.conf

動態庫的絕對路徑寫到配置檔案中

更新 ldconfig –v v引數表示顯示更新過程的詳細資訊

Linux 靜態庫和動態庫的製作和使用

一 linux作業系統支援的函式庫分支 靜態庫 lib a,在編譯時就將庫編譯進可執行程式 優點 程式的執行環境中不需要外部的函式庫 缺點 可執行程式大 動態庫 又稱共享庫,lib so,在程式執行時將庫載入到可執行程式中 優點 可執行程式小 缺點 程式的執行環境中必須提供相應的庫 函式庫目錄 li...

09 靜態庫和動態庫的製作和使用

二進位制檔案 將源 c cpp 二進位制格式的源 加密標頭檔案 製作出的庫 1 命名規則 lib a 庫的名字 2 製作步驟 原材料 源 c檔案 將.c生成.o檔案 gcc a.c b.c c i includ 將.o打包 ar rcs 靜態庫名稱 lib a 原材料 o檔案 例 ar rcs li...

linux靜態動態庫製作和使用

本質優點 動態庫共享庫的 是在可執行程式執行時才載入記憶體 1.省空間2.bug修復利於維護3.開發效率 靜態庫靜態庫被鏈結後庫就直接嵌入可執行檔案 1.速度快 linux靜態動態庫製作和使用 動態庫步驟 生成.so文檔案 加 fpic和 shard和檔名需lib so 1.1.gcc fpic o...