靜態庫的建立:
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 包含乙個對應的標頭檔案告知...