靜態庫和動態庫製作

2021-10-03 18:55:28 字數 1403 閱讀 9889

1.什麼是庫檔案?

儲存函式和變數(倉庫)

特點:儲存的函式變數只能使用但不能看到其它實現。

靜態庫(.a):在編譯階段載入(將庫檔案**載入到原始檔);

動態庫(.so):在執行時載入。

2.生成的可執行檔案存在的區別(優缺點)

(1)使用靜態庫生成的可執行檔案大於動態庫(程式執行占用記憶體較多);

(2)使用靜態庫生成的可執行檔案難以公升級,使用動態庫生成的可執行檔案易公升級;

(3)使用靜態庫生成的可執行檔案速度快,使用動態庫生成的可執行檔案速度慢;

(4)使用靜態庫生成的可執行檔案裡**容易部署,動態庫難以部署。

3.linux庫存放路徑(自動搜尋錄路徑)

/lib:存放的系統執行所需的庫;

/usr/lib:存放的程式執行所需的庫。

4.如何製作靜態庫

(1)將需要儲存的函式所在檔案編譯生成目標檔案

gcc -c add.c sub.c

(2)靜態庫製作工具:ar

ar rcs(不存在就建立,存在就更新)庫名 目標檔名

ar rcs libadd.a sub.o sub.o

(3)使用

gcc 原始檔 -l庫名 -l 庫存放路徑

gcc main.c -ladd -l -o add

(4)輸入./add 得到結果

靜態庫製作練習

靜態庫製作:

5.如何製作動態庫

gcc -shared -fpic 原始檔 -o libcal.so(庫名)

使用:(1)cp libcal.so /usr/lib

gcc main.c -lcal

(2)gcc main.c ./libcal.so -o cal

動態庫製作練習

製作靜態庫和動態庫

製作靜態庫的方法 1 把 編譯為目標檔案形式 gcc c liberr.c o liberr.o 2 使用工具ar建立乙個存檔檔案 ar rcs liberr.a liberr.o gcc errtest.c o errtest static l.lerr 製作動態庫的方法 1 首先編譯目標檔案 g...

靜態庫和動態庫的製作

在現實工作中,要實現 的共享但又不想讓別人知道自己的源 那我們該怎麼做呢?我們可以利用動態庫來保護自己寫的源 不被別人竊取。lib目錄檔案 makefile cc gcc 用ar命令對目標檔案歸檔 格式為ar rcs 生成靜態庫檔案 libtest.a myalib.o ar rcs libtest...

Linux靜態庫和動態庫的製作

1.什麼是庫檔案?儲存函式和變數 特點 儲存的函式與變數只能使用但不能看到其實現 2.linux庫檔案 靜態庫 在編譯階段載入 將庫檔案的 載入到原始檔 動態庫 在執行時載入 3.生成可執行檔案存在的區別 優缺點 1 使用靜態庫生成的可執行檔案大於動態庫生成的可執行檔案 程式占用的記憶體較多 2 使...