av激情亚洲男人的天堂国语,日韩欧美精品一中文字幕,无码av一区二区三区无码,国产又色又爽又刺激的a片,国产又色又爽又刺激的a片

學(xué)習(xí)Linux下鏈接共享庫的原理與使用方法(linux鏈接共享庫)

學(xué)習(xí)linux下鏈接共享庫的原理與使用方法

許多開發(fā)者時常使用Linux下的動態(tài)鏈接庫(dynamic linking library),又稱共享庫(Shared Library),這種庫經(jīng)過編譯鏈接,可以被多個應(yīng)用程序同時使用,而不需要反復(fù)多次編譯鏈接,從而節(jié)省內(nèi)存空間和計算機(jī)時間。那么Linux下鏈接共享庫的原理又是什么呢?本文就Linux下鏈接共享庫的原理與使用方法進(jìn)行講解。

Linux下鏈接共享庫是利用惰性綁定(lazy binding)相關(guān)技術(shù)將被多個程序共同使用的代碼 or 數(shù)據(jù)模塊進(jìn)行一次編譯,共同生成共享庫,而不是分別編譯成獨(dú)立的目標(biāo)文件,其原理如下:

1. 在編譯生成的可執(zhí)行程序中,通常會包含一些函數(shù)調(diào)用指令,但是該指令對應(yīng)的函數(shù)所在的位置并未確定;

2. 當(dāng)程序加載到內(nèi)存后,系統(tǒng)會根據(jù)動態(tài)鏈接庫的記錄,自動將共享庫加載進(jìn)內(nèi)存,而程序中的相應(yīng)函數(shù)調(diào)用就會替換成該函數(shù)在共享庫中的具體位置;

3. 如此,程序就可以正常調(diào)用共享庫中的函數(shù),從而實現(xiàn)了共享庫的鏈接過程。

Linux下鏈接共享庫的使用過程則主要步驟如下:

1. 首先,我們需要將要編譯的代碼文件編譯成共享文件,這可以通過GCC中的 -fPIC 參數(shù);

2. 然后,編譯器會將編譯后的目標(biāo)文件生成一個共享庫文件,形如libxxx.so;

3. 再則,將生成的共享庫文件拷貝至系統(tǒng)lib目錄或者指定的目錄,以便被調(diào)用;

4. 最后,通過-L參數(shù)將要連接的共享庫目錄指定由編譯器編譯生成可執(zhí)行程序至該目錄,而-l參數(shù)則表示將要調(diào)用的共享庫;

以上就是Linux下鏈接共享庫的原理與使用方法,如果能正確使用,可以幫助開發(fā)者節(jié)省大量開發(fā)時間。以下是示例代碼:

#include

#include //sin_sample.h 中聲明了sin_sample功能

int main(int argc, char** argv)

{

float angle = 3.14f / 2.0f;

printf(“%f\n”,sin_sample(angle));

return 0;

}

// 編譯命令:gcc dynamic_library_example.c -L. -lsin_sample -o dynamic_library

// 運(yùn)行程序 ./dynamic_library

總結(jié)

綜上,Linux下鏈接共享庫的原理與使用方法是這樣的:共享庫依靠惰性綁定(lazy binding)技術(shù)將多個程序共同使用的代碼or數(shù)據(jù)模塊進(jìn)行一次編譯,而在程序加載到內(nèi)存后,入口函數(shù)調(diào)用將會指向共享庫中的函數(shù);使用共享庫的步驟是:將需要編譯文件編譯成共享文件,然后將生成的共享庫文件拷貝至系統(tǒng)lib目錄或者指定的目錄,最后將該目錄指定到編譯器。正確的使用共享庫就能達(dá)到節(jié)省計算時間的目的。

成都網(wǎng)站營銷推廣找創(chuàng)新互聯(lián),全國分站站群網(wǎng)站搭建更好做SEO營銷。
創(chuàng)新互聯(lián)(www.cdcxhl.com)四川成都IDC基礎(chǔ)服務(wù)商,價格厚道。提供成都服務(wù)器托管租用、綿陽服務(wù)器租用托管、重慶服務(wù)器托管租用、貴陽服務(wù)器機(jī)房服務(wù)器托管租用。


當(dāng)前名稱:學(xué)習(xí)Linux下鏈接共享庫的原理與使用方法(linux鏈接共享庫)
URL網(wǎng)址:http://uogjgqi.cn/article/dppjghi.html
掃二維碼與項目經(jīng)理溝通

我們在微信上24小時期待你的聲音

解答本文疑問/技術(shù)咨詢/運(yùn)營咨詢/技術(shù)建議/互聯(lián)網(wǎng)交流