歡迎來到Linux教程網
Linux教程網
Linux教程網
Linux教程網
Linux教程網 >> Linux基礎 >> Linux技術 >> 有關動/靜態庫的制作

有關動/靜態庫的制作

日期:2017/3/3 12:27:42   编辑:Linux技術

靜態庫

程序 所 要 用 到 的庫函數 代碼 在 鏈接時全 部被copy 到程序中 。導致的問題 :如果有多個進程在內存中同時運行 , 並且使用了相同 的庫函數 ,那麼時運行 ,並且使用了相同 的庫函數 ,那麼就會 有 多份拷貝 ,這就是對空間的的浪費。Linux 下進行鏈接時 默認是鏈接動態庫,如果需要使用靜態庫,需要使用 -static指明。

靜態庫的制作:

1. gcc –c mylib.c –o mylib.o

2. ar cqs libmylib.a mylib.o

3. 將 將 制作好的 的libmylib.a 復制到 到/usr/lib

GCC在 在 鏈接時 , 默認只會鏈接會鏈接C 函數庫, 而對於 其 他 的函數庫, 則需要使用-l 選項來顯示地指 明 需要鏈接 。

使用選項-lname

例:gcc test.c –lmylib -o test

動態庫制作:

1. gcc –c mylib.c –o mylib.o

2. gcc -shared -fpic mylib.o -o libmylib.so

3. 將制作好的 的libmylib.so 復制到/usr/lib

-fpic 使輸出的對象模塊是按照可重定位地址方式生成的。

-shared 指 指 明 產生 動態鏈接

Copyright © Linux教程網 All Rights Reserved