math.h
1 #ifndef __mymath_h__
2 #define __mymath_h__
3 int add(int x,int y);
4 5 int sub(int x,int y);
6 7 int mul(int x,int y);
8 9 int div(int x,int y);
10 #endif //__mymath_h__
(1)將所有的.c檔案生成.o檔案
(2)makefile自動生成動靜態庫
1 libmymath.a libmy.so:add.o sub.o mul.o div.o
2 ar -rc libmymath.a $^
3 gcc -fpic -shared -o libmy.so $^
4 add.o sub.o mul.o div.o:add.c sub.c mul.c div.c
5 gcc -c add.c -o add.o -g
6 gcc -c sub.c -o sub.o -g
7 gcc -c mul.c -o mul.o -g
8 gcc -c div.c -o div.o -g
先編寫乙個test.c檔案,裡邊用到該靜態庫中的函式
靜態庫(mymath.a): gcc test.c -i./ -l./ -lmymath
說明:-i 後邊跟頭檔案的路徑,如果不寫,預設在當前目錄下搜尋
-l 後邊跟庫的路徑 ,如果不寫,預設在系統指定的目錄下搜尋
-l 後邊跟庫名,指定要用哪個庫
動態庫(my.so): 生成庫後,首先設定環境變數 export ld_library_path=動態庫的搜尋路徑
如果檔案不存在,需要open建立,則第三個引數表示建立檔案的預設許可權,否則,使用兩個引數
linux動 靜態庫的生成和使用
在小烏的眼裡,庫檔案就是資源檔案,也沒有什麼難以理解的 可是如果真要問得深入一點 動態鏈結庫和靜態鏈結庫有什麼區別?怎麼做乙個動態鏈結庫?怎麼生成靜態 動態鏈結庫?什麼叫顯示 隱示呼叫?小烏就鬱悶了,所以今天決定要拍死這些問題。window下面的動 靜態鏈結庫檔名分別為 dll和.lib linux...
linux動 靜態庫的生成和使用
在小烏的眼裡,庫檔案就是資源檔案,也沒有什麼難以理解的 可是如果真要問得深入一點 動態鏈結庫和靜態鏈結庫有什麼區別?怎麼做乙個動態鏈結庫?怎麼生成靜態 動態鏈結庫?什麼叫顯示 隱示呼叫?小烏就鬱悶了,所以今天決定要拍死這些問題。window下面的動 靜態鏈結庫檔名分別為 dll和.lib linux...
LINUX下生成動 靜態庫檔案
1.生成.so檔案的命令 linux系統中的動態鏈結庫檔案 a g test a.cpp test b.cpp fpic shared o libtest.so g test.cpp o test l.ltestb 生成 gcc fpic shared port.cpp print.cpp o pr...