Linux静态库和动态库的设计
靜態(tài)庫和動態(tài)庫的設計
宗旨:技術的學習是有限的,分享的精神是無限的。
Linux應用程序設計中需要的外部函數主要由函數庫和系統(tǒng)調用來提供
Linux應用程序使用的主要函數庫均存放于/lib, /usr/lib目錄下,其中采用*.so.*方式命名的是動態(tài)函數庫,而以*.a方式命令的是靜態(tài)函數庫(空間占據大)
Linux下進行鏈接時 默認是鏈接動態(tài)庫
1、制作靜態(tài)庫
?????? (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、制作動態(tài)庫
?????? (1).gcc -c mylib.c -o mylib.o
?????? (2).ar -shared -fPIC mylib.o -olibmylib.so
?????? (3).將制作好的libmylib.so復制到/usr/lib
?????? -fpic 使輸出的對象模塊是按照可重定位地址方式生成的。
?????? -shared 指明產生動態(tài)鏈接庫
?????? (4).GCC在鏈接時,默認只會鏈接C函數庫,而對于其他的函數庫,則需要使用-l選項來顯示地指明需要鏈接。例:gcc test.c –lmylib -o test
?
創(chuàng)作挑戰(zhàn)賽新人創(chuàng)作獎勵來咯,堅持創(chuàng)作打卡瓜分現(xiàn)金大獎總結
以上是生活随笔為你收集整理的Linux静态库和动态库的设计的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: net.conn read 判断数据读取
- 下一篇: linux 查看tomcat日志 关键字