1. 程式人生 > >Linux靜態庫和動態庫的設計

Linux靜態庫和動態庫的設計

靜態庫和動態庫的設計

宗旨:技術的學習是有限的,分享的精神是無限的。

Linux應用程式設計中需要的外部函式主要由函式庫和系統呼叫來提供

Linux應用程式使用的主要函式庫均存放於/lib, /usr/lib目錄下,其中採用*.so.*方式命名的是動態函式庫,而以*.a方式命令的是靜態函式庫(空間佔據大)

Linux下進行連結時 預設是連結動態庫

1製作靜態庫

       (1).gcc -c mylib.c -o mylib.o

       (2).ar cqs libmylib.a mylib.o

       (3).將製作好的libmylib.a複製到/usr/lib

       (4).GCC在連結時,預設只會連結C函式庫,而對於其他的函式庫,則需要使用-l選項來顯示地指明需要連結。例:gcc test.c –lmylib -o test

2、製作動態庫

       (1).gcc -c mylib.c -o mylib.o

       (2).ar -shared -fPIC mylib.o -olibmylib.so

       (3).將製作好的libmylib.so複製到/usr/lib

       -fpic 使輸出的物件模組是按照可重定位地址方式生成的。

       -shared 指明產生動態連結庫

       (4).GCC在連結時,預設只會連結C函式庫,而對於其他的函式庫,則需要使用-l選項來顯示地指明需要連結。例:gcc test.c –lmylib -o test