linux 靜態庫和動態庫生成

2021-09-02 06:15:17 字數 464 閱讀 1474

靜態庫

ar rcs lib***.a xx1.o xx2.o

生成靜態庫

c 建立乙個庫

s 建立目標檔案索引,在建立較大的庫時,能加快時間 rablib lib***.a 為庫檔案建立索引。

ar t lib***.a 檢視庫檔案內所含目標檔案名字

ar -tv lib***.a 檢視庫檔案內所含目標檔案,顯示檔名、時間、大小

動態庫gcc test.ec -fpic -shared -o lintest.so生成動態庫

呼叫編譯時加入-ltest  加入函式標頭檔案,將庫中函式寫入test.h

編譯程式時#include」 test.h」標頭檔案,在標頭檔案中呼叫需要加上#ifndef 然後#include

庫函式檢視:

檢視動態庫包含的函式

nm函式

strings 動態庫,檢視可列印

Linux靜態庫和動態庫的生成

建立庫 靜態庫 在編譯時就拷貝到應用程式中,因此當多個應用程式同時引用乙個靜態庫時,記憶體中將會有呼叫函式的多個副本。優點 節省編譯時間。動態庫 在程式開始執行後呼叫庫函式時才被載入,被調函式的央存中只有乙個副本,並且動態庫可以在程式執行期間釋放動態庫所占用的記憶體,騰出空間供其他程式使用。建立靜態...

Linux 如何生成靜態庫和動態庫

1 linux下的庫 靜態庫和共享庫 動態庫 二者的不同點在於 被載入的時刻不同。靜態庫的 在編譯過程中已經被載入可執行程式,因此體積較大。共享庫的 是在可執行程式執行時才載入記憶體的,在編譯過程中僅簡單的引用,因此 體積較小。2 庫存在的意義 庫是別人寫好的現有的,成熟的,可以復用的 你可以使用但...

Linux 如何生成靜態庫和動態庫

1 linux下的庫 靜態庫和共享庫 動態庫 二者的不同點在於 被載入的時刻不同。靜態庫的 在編譯過程中已經被載入可執行程式,因此體積較大。共享庫的 是在可執行程式執行時才載入記憶體的,在編譯過程中僅簡單的引用,因此 體積較小。2 庫存在的意義 庫是別人寫好的現有的,成熟的,可以復用的 你可以使用但...