新聞中心
linux動(dòng)態(tài)庫編寫:從入門到精通

創(chuàng)新互聯(lián)建站是一家專業(yè)提供坪山企業(yè)網(wǎng)站建設(shè),專注與成都網(wǎng)站設(shè)計(jì)、網(wǎng)站建設(shè)、H5技術(shù)、小程序制作等業(yè)務(wù)。10年已為坪山眾多企業(yè)、政府機(jī)構(gòu)等服務(wù)。創(chuàng)新互聯(lián)專業(yè)網(wǎng)站建設(shè)公司優(yōu)惠進(jìn)行中。
Linux是當(dāng)今IT界使用最廣泛的開源操作系統(tǒng),它在眾多領(lǐng)域都取得了巨大成功,其中包括應(yīng)用程序開發(fā)。動(dòng)態(tài)庫(Dynamic Library)是為了支持若干領(lǐng)域應(yīng)用開發(fā)而設(shè)計(jì)的共享文件,它可以把多個(gè)應(yīng)用程序從單一程序分離出來,大大提高了靈活性和可重復(fù)使用率,也更加容易維護(hù)管理且減少了重復(fù)勞動(dòng)量。本文將深入介紹如何在Linux系統(tǒng)利用動(dòng)態(tài)庫進(jìn)行應(yīng)用程序的開發(fā)。
第一步是了解Linux的動(dòng)態(tài)庫,一般情況下,Linux操作系統(tǒng)中的動(dòng)態(tài)庫是一種共享庫,也可以叫做共享對(duì)象,它是由程序的可執(zhí)行文件創(chuàng)建出來的。要想使用共享庫,那么就必須先編譯鏈接,它將所有的程序組裝成可執(zhí)行文件,以找出它們依賴的外部函數(shù),并創(chuàng)建相應(yīng)的連接文件,生成可執(zhí)行文件。在編譯和鏈接程序過程中,動(dòng)態(tài)庫將被查詢,并將相應(yīng)函數(shù)編譯進(jìn)可執(zhí)行文件中。
在Linux系統(tǒng)中,動(dòng)態(tài)庫一般以*.so(shared objects)為擴(kuò)展名。它們可以通過ldconfig命令加載到操作系統(tǒng)中去,而不必重新編譯程序。另外,Linux操作系統(tǒng)運(yùn)行時(shí),動(dòng)態(tài)庫的搜索路徑會(huì)被寫入/etc/ld.so.conf,Linux動(dòng)載程序會(huì)根據(jù)該文件加載動(dòng)態(tài)庫。當(dāng)用戶登陸到操作系統(tǒng)時(shí),/sbin/ldconfig會(huì)在/etc/ld.so.conf中設(shè)置的路徑里搜索動(dòng)態(tài)庫,每次改變動(dòng)態(tài)庫,都需要執(zhí)行l(wèi)dconfig。
編寫動(dòng)態(tài)庫的第二步就是編寫動(dòng)態(tài)庫的源文件,由源文件(.c)、頭文件(.h)及Makefile文件組成,需要為每一個(gè)函數(shù)增加一個(gè)相關(guān)的.h文件,并提供一個(gè)函數(shù)定義。Makefile里需要指定編譯動(dòng)態(tài)庫的相關(guān)選項(xiàng),文件取得適當(dāng)?shù)哪K名和后綴名頭文件,以及對(duì)應(yīng)的庫文件位置等等。
第三步是用gcc命令編譯源文件,用于將源文件和其他所有的模塊編譯成一個(gè)可執(zhí)行文件上,可以使用以下語句進(jìn)行編譯:
gcc -fPIC -shared -o [output] source.c
其中,編譯選項(xiàng)-fPIC表示為生成Position Independent Code(PIC), -shared表示鏈接程序運(yùn)行時(shí)會(huì)被共享,而-o表示生成的輸出文件名。
最后,動(dòng)態(tài)庫文件需要安裝,將安裝文件拷貝和下載至指定目錄(/usr/local/lib),運(yùn)行l(wèi)dconfig以加載動(dòng)態(tài)庫,以便隨著系統(tǒng)啟動(dòng)自行加載到操作系統(tǒng)中去。
以上就是Linux動(dòng)態(tài)庫的編寫,必須一步一步地按照給定的步驟來編譯,Link的過程。只要用戶明白每一步的意義,就可以輕松地編寫出Linux動(dòng)態(tài)庫,便于應(yīng)用程序的開發(fā)。
創(chuàng)新互聯(lián)服務(wù)器托管擁有成都T3+級(jí)標(biāo)準(zhǔn)機(jī)房資源,具備完善的安防設(shè)施、三線及BGP網(wǎng)絡(luò)接入帶寬達(dá)10T,機(jī)柜接入千兆交換機(jī),能夠有效保證服務(wù)器托管業(yè)務(wù)安全、可靠、穩(wěn)定、高效運(yùn)行;創(chuàng)新互聯(lián)專注于成都服務(wù)器托管租用十余年,得到成都等地區(qū)行業(yè)客戶的一致認(rèn)可。
文章題目:Linux動(dòng)態(tài)庫編寫:從入門到精通(linux動(dòng)態(tài)庫編寫)
標(biāo)題路徑:http://fisionsoft.com.cn/article/dpisgis.html


咨詢
建站咨詢
