1、建立靜態庫的過程:
1)寫源程式
math.c view.c
2)編譯源程式
gcc -c math.c ==> math.o
gcc -c view.c ==> view.o
3)建立靜態庫檔案
ar -r libmyku.a math.o view.o
2、使用靜態庫檔案
1)寫程式,呼叫庫中的函式
testku.c
2)編譯
gcc -c testku.c ==> testku.o
3)連線
第一種方式:
gcc testku.o libmyku.a ==> a.out
第二種方式:
gcc testku.o -l myku ==> a.out
依賴環境變數library_path
連線過程:將庫名myku變成檔名libmyku.a,然後在library_path環境變數指定的路徑找到檔案libmyku.a,最後進行連線。
第三種方式:
gcc testku.o -l myku -l .
不需要依賴環境變數library_path,用-l指定查詢庫檔案的路徑
3、建立共享庫
1)寫源程式
math.h math.c view.c
2)編譯源程式
gcc -c -fpic math.c ==> math.o
gcc -c -fpic view.c ==> view.o
3)連線並生成共享庫檔案
gcc -shared math.o view.o -olibmysku.so ==>libmysku.so
4、使用共享庫
1)寫使用程式
testku.c
2)編譯
gcc -c testku.c
3)連線
gcc testku.o -lmysku -l. ==> a.out
4)執行
a.out
依賴環境變數ld_library_path
a.out在執行期間呼叫庫中的函式時,需要先找到共享庫檔案,查詢庫檔案的方式是搜尋ld_library_path指定的路徑
project
src
binlib
doc練習:
寫幾個函式(考慮列印菱形,乙個列印空心,乙個列印實心),將這此函式做成靜態庫檔案,並呼叫它,再做成共享庫檔案,並呼叫它。
Linux下的靜態庫和共享庫的建立和使用
靜態庫的建立和使用 共享庫的建立及使用 第一次 從 usr lib下可以看出共享庫應該是藍色字型或是綠色字型,而我第一次建立的共享庫卻是黑色字型,顯然不對,我又重新做了一遍 第二次 這一次雖然建立好了libfoo.so,但是不能使用,找不到共享庫?我又做了第三次 第三次 我先將切換到管理員,然後 m...
靜態庫和共享庫
建立和使用靜態庫 1 建立目錄 mkdir p test sub 2 在子目錄sub 下編寫hello.c和hello.h hello.c include include hello.h void hello hello.h include void hello 4 在主目錄test 下編寫main...
建立C共享庫和靜態庫
操作環境,linux系統下。sth.c 庫程式 unsigned long long sth unsigned int x,unsigned int y 建立主函式呼叫fuction.c test.c include includeint main int argc,char argv gcc c ...