linux 中動態庫和靜態庫的建立和使用

2021-07-26 06:48:42 字數 1116 閱讀 9123

靜態庫的建立:

1.將.c檔案全部編譯為.o檔案

2.在linux下輸入命令: ar rcs 靜態庫名 目標檔案1 目標檔案2

靜態庫的使用:

輸入命令: gcc  -o file file.c –l. -lname

備註: file表示檔名,-l是搜尋路徑,-l是鏈結到庫的名字(可以簡寫庫的名字)  

庫的名字由 lib+name+字尾  靜態庫的字尾為.a 動態庫的字尾為.so 

例子:分別輸入「加,減,乘,除」四個函式,放入庫中,在主函式中呼叫它們。

1.分別輸入五個函式

2.輸入gcc -c add.c sub.c mul.c div.c 生成4個.o檔案

3.輸入ar rcs libmat.a add.o sub.o mul.o div.o 把檔案放入庫中

4.輸入gcc -o mat main.c -l. -lmat 生成mat可執行檔案

5.執行檔案,輸出結果

動態庫的建立:

gcc  -shared –fpic –o 庫名.so 原始檔.c

動態庫的使用

gcc 原始檔.c ./ 庫名.so –o 可執行檔名

例子:1.輸入 gcc -shared -fpic -o libmat.so add.c sub.c mul.c div.c 產生動態庫

2.輸入 gcc main.c ./libmat.so -o mat 使用動態庫。

ps:常用ar下的命令

ar -t  列出庫中的檔名

-d 刪除檔案

-dv 刪除檔案並提出詢問

-x 提取檔案

-xv提取檔案並提出詢問

Linux動態庫和靜態庫基礎

example hello.c hello.h main.c 1.靜態庫 gcc c hello.c ar cr libhello.a hello.o 引用庫 lhello 2.動態庫 gcc c hello.c gcc shared fpci o libhello.so hello.o 引用庫 l...

動態庫和靜態庫

本文主要解決以下幾個問題 1 為什麼要使用庫?2 庫的分類 3 建立自己的庫 或許大家對自己初學linux時的情形仍記憶尤新吧。如果沒有乙個能較好的解決依賴關係的包管理器,在linux下安裝軟體將是一件及其痛苦的工作。你裝a包時,可能會提示你要先裝b包,當你費盡心力找到b包時,可能又會提示你要先安裝...

動態庫和靜態庫

先抄一段 windows下的動態庫和靜態庫區別解釋,其實linux下意義一樣的,不過字尾名有些區別 靜態庫 在編譯的時候載入生成目標檔案,在執行時不用載入庫,在執行時對庫沒有依賴性。動態庫 在目標檔案執行時載入,手動載入,且對庫有依賴性。兩者區別 一,靜態庫的使用需要 1 包含乙個對應的標頭檔案告知...