靜態庫和動態庫的區別

2021-09-29 12:38:22 字數 775 閱讀 2993

庫的作用:

庫是共享程式**的方式,一般分為靜態庫和動態庫。庫實現了某些特定的功能模組化。方便分享和使用!

異同點:

2.靜態庫和動態庫有什麼特點?

- 不同點:

靜態庫:鏈結時完整地拷貝至可執行檔案中,被多次使用就有多份冗餘拷貝。

動態庫:鏈結時不複製,程式執行時由系統動態載入到記憶體,供程式呼叫,系統只載入一次,多個程式可以共用,節省記憶體。

- 共同點:

生成靜態庫:

當前檔案:add.c 、 add.h 、 main.c 、 sub.c 、 sub.h

//生成靜態庫

ar -rc libmtmath.a add.o sub.o

//列出靜態庫中的檔案

ar -t libmymath.a

//使用靜態庫

gcc main.c -l

.-llibmymath

//指定路徑 指定庫名

生成動態庫:
gcc -fpic

-c sub.c add.c

gcc -shared

-o libmymath.so *

.o//使用動態庫

gcc main.o -o main -l

.-lhello

庫的作用:

靜態庫和動態庫的區別

windows vc 靜態庫 在編譯的時候載入生成目標檔案,在執行時不用載入庫,在執行時對庫沒有依賴性。動態庫 在目標檔案執行時載入,手動載入,且對庫有依賴性。兩者區別 一,靜態庫的使用需要 1 包含乙個對應的標頭檔案告知編譯器lib檔案裡面的具體內容 2 設定lib檔案允許編譯器去查詢已經編譯好的...

靜態庫和動態庫的區別

靜態庫在程式編譯時被連線到目標 中,程式執行時不再需要靜態庫 動態庫在編譯時並不被連線到目標 中,而是程式執行時才被載入,執行時仍然需要動態庫存在。靜態庫的命名規範是以 lib為字首,緊接著是靜態庫名,副檔名是.a 先將檔案編譯成 o 檔案然後是編譯成靜態檔案 動態庫檔案在檔名前加 lib字首,擴充...

靜態庫和共享庫 動態庫 的區別

靜態庫和共享庫 動態庫 的區別 根據鏈結時期不同,分為靜態庫和共享庫,靜態庫是在程式編譯時鏈結的,共享庫是在程式執行時鏈結的。庫是預先編譯好的方法的集合,命名一般為libxx.a 靜態庫 libxx.so 動態庫 庫檔案常存放的地點為 lib或 usr lib,庫對應的標頭檔案一般存放在 usr i...