淺談Linux C語言動(dòng)態(tài)庫及靜態(tài)庫
假設(shè)在math目錄下已編輯好add.c sub.c div.c mul.c func_point.c文件,func_point.c為包含main()的源文件!
動(dòng)態(tài)庫的制作:
方法一:
gcc -c -fPIC add.c sub.c div.c mul.c //-c表示生成.o目標(biāo)文件,-f后加一些編譯選項(xiàng),PIC表示與位置無關(guān) gcc -shared -o libmymath.so add.o sub.o mul.o div.o//創(chuàng)建共享庫mymath,添加add.o,sub.o,mul.o,div.o目標(biāo)文件 sudo mv libmymath.so /usr/lib gcc func_point.c -lmymath//-l后面加動(dòng)態(tài)鏈接庫名字
方法二:
gcc -c -fPIC add.c sub.c div.c mul.c //-c:生成.o目標(biāo)文件,-f后加一些編譯選項(xiàng),PIC表示與位置無關(guān) gcc -shared -o libmymath.so add.o sub.o mul.o div.o//創(chuàng)建共享庫mymath,添加add.o,sub.o mul.o div.o目標(biāo)文件 export LD_LIBRARY_PATH=$LD_LIBRARY_PATH:.//注意此操作后把當(dāng)前目錄加入環(huán)境變量中 gcc func_point.c -L. -lmymath//-l后面加動(dòng)態(tài)鏈接庫名字
方法三:
gcc -c -fPIC add.c sub.c div.c mul.c //-c:生成.o目標(biāo)文件,-f后加一些編譯選項(xiàng),PIC表示與位置無關(guān) gcc -shared -o libmymath.so add.o sub.o mul.o div.o//創(chuàng)建共享庫mymath,添加add.o,sub.o mul.o div.o目標(biāo)文件 sudo vi /etc/ld.so.conf//把你的動(dòng)態(tài)庫路徑加入此文件中 sudo ldconfig gcc func_point.c -L. -lmymath//-l后面加動(dòng)態(tài)鏈接庫名字
ldd 顯示可執(zhí)行程序所需的共享庫。
定義好框架,不斷增加動(dòng)態(tài)庫??!
靜態(tài)庫制作:
ar -crs libmymath.a add.o sub.o div.o mul.o/*創(chuàng)建靜態(tài)庫mymath,添加add.o,sub.o,mul.o,div.o,-c:創(chuàng)建歸檔文件 -r:插入 -s:若歸檔文件中包含了對(duì)象模式,可利用此參數(shù)建立備存文件的符號(hào)表 ar -crs libmymath.a *.o */
gcc func_point.c -L. -lmymath//-L在哪個(gè)目錄下找?guī)?-l找哪個(gè)庫,-lm可以鏈接到標(biāo)準(zhǔn)算數(shù)庫,-lpthread可以連接到Linux標(biāo)準(zhǔn)線程庫
ar -d libmymath.a add.o//刪除一個(gè)
ar -r libmymath.a add.o//增加一個(gè)
靜態(tài)庫在程序鏈接時(shí)用到,鏈接器把程序所需的代碼從靜態(tài)庫中拷貝到可執(zhí)行程序中,可執(zhí)行程序會(huì)增大;動(dòng)態(tài)庫在程序加載時(shí)用到,程序在加載時(shí),會(huì)先檢查需要哪些動(dòng)態(tài)庫連接,然后從內(nèi)存中找到這些動(dòng)態(tài)庫的地址,最后加載動(dòng)態(tài)庫運(yùn)行程序。
以上這篇淺談Linux C語言動(dòng)態(tài)庫及靜態(tài)庫就是小編分享給大家的全部?jī)?nèi)容了,希望能給大家一個(gè)參考,也希望大家多多支持腳本之家。
相關(guān)文章
linux下Vps自動(dòng)備份web和mysql數(shù)據(jù)庫的腳本
這篇文章主要介紹了vps下web與mysql數(shù)據(jù)庫的備份方法,需要的朋友可以參考下2012-05-05
linux高性能測(cè)試之CPU模式批量由cpupower轉(zhuǎn)performance問題
這篇文章主要介紹了linux高性能測(cè)試之CPU模式批量由cpupower轉(zhuǎn)performance問題,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。如有錯(cuò)誤或未考慮完全的地方,望不吝賜教2023-06-06
centos下yum搭建安裝linux+apache+mysql+php環(huán)境的方法
這篇文章主要介紹了centos下yum搭建安裝linux+apache+mysql+php環(huán)境的方法,本文分步驟給大家介紹的非常詳細(xì),具有參考借鑒價(jià)值,需要的朋友可以參考下2016-10-10

