Linux下的動態鏈結庫與靜態鏈結庫的生成與使用

2021-08-25 12:52:48 字數 348 閱讀 5387

1、靜態鏈結庫的生成

靜態鏈結庫實際上是.o檔案乙個集合,因此只需要使用ar命令來將這些.o檔案合併就行了

比如ar -rc test.a *.o那就是生成乙個叫test.a的靜態庫檔案

2、動態鏈結庫的生成

編譯時就需要指定引數-fpic -shared引數

3、靜態鏈結庫的使用

靜態鏈結庫使用跟.o檔案一樣,直接綴在鏈結引數後面就行了

4、動態鏈結庫的使用

-l加庫名來指定,注意如果動態鏈結庫不在搜尋路徑上,則需要指定ld_library_path

從運維的角度來看,還是靜態鏈結庫更好一些,只需要拷貝乙個檔案就行了,雖然檔案比較大,但是影響不大。

Linux下動態鏈結庫和靜態鏈結庫

第一部分 編譯過程 預處理過程,負責標頭檔案展開,巨集替換,條件編譯的選擇,刪除注釋等工作。gcc e表示進行預處理。編譯過程,負載將預處理生成的檔案,經過詞法分析,語法分析,語義分析及優化後生成彙編檔案。gcc s表示進行編譯。彙編,是將彙編 轉換為機器可執行指令的過程。通過使用gcc c或者as...

Linux下的動態鏈結庫與靜態鏈結庫的生成與使用

1 靜態鏈結庫的生成 靜態鏈結庫實際上是.o檔案乙個集合,因此只需要使用ar命令來將這些.o檔案合併就行了 比如ar rc test.a o那就是生成乙個叫test.a的靜態庫檔案 2 動態鏈結庫的生成 編譯時就需要指定引數 fpic shared引數 3 靜態鏈結庫的使用 靜態鏈結庫使用跟.o檔案...

Windows下動態鏈結庫與靜態鏈結庫的構建

bool winapi dllmain handle hdllhandle,dword dwreason,當乙個程式試圖載入解除安裝dll時,系統會呼叫dll庫中的dllmain函式 然後編寫實際功能函式 libiary win32 dll 模組名稱 exports 下面的函式才能在dll外使用 f...