基礎I O口和動靜態庫的生成

2021-08-29 23:17:57 字數 1255 閱讀 4639

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...