新聞中心
so格式文件是什么文件?
SO文件格式即ELF文件格式,它是Linux下可執(zhí)行文件,共享庫(kù)文件和目標(biāo)文件的統(tǒng)一格式。 根據(jù)看待ELF文件的不同方式,ELF文件可以分為鏈接視圖和裝載視圖。

新邵網(wǎng)站制作公司哪家好,找創(chuàng)新互聯(lián)!從網(wǎng)頁(yè)設(shè)計(jì)、網(wǎng)站建設(shè)、微信開(kāi)發(fā)、APP開(kāi)發(fā)、成都響應(yīng)式網(wǎng)站建設(shè)等網(wǎng)站項(xiàng)目制作,到程序開(kāi)發(fā),運(yùn)營(yíng)維護(hù)。創(chuàng)新互聯(lián)于2013年成立到現(xiàn)在10年的時(shí)間,我們擁有了豐富的建站經(jīng)驗(yàn)和運(yùn)維經(jīng)驗(yàn),來(lái)保證我們的工作的順利進(jìn)行。專注于網(wǎng)站建設(shè)就選創(chuàng)新互聯(lián)。
鏈接視圖是鏈接器從鏈接的角度看待靜態(tài)的ELF文件。
從鏈接視圖看ELF文件,ELF文件由多個(gè)section組成,不同的section擁有不同的名稱,權(quán)限。
而裝載視圖是操作系統(tǒng)從加載ELF文件到內(nèi)存的角度看待動(dòng)態(tài)的ELF文件。
從裝載視圖看ELF文件,ELF文件由多個(gè)segment,每一個(gè)segment都擁有不同的權(quán)限,名稱。實(shí)際上,一個(gè)segment是對(duì)多個(gè)具有相同權(quán)限的section的集合。
什么是SO文件?
so文件是Linux下的程序函數(shù)庫(kù),即編譯好的可以供其他程序使用的代碼和數(shù)據(jù)。
1、so文件就跟.dll文件差不多。
2、一般來(lái)說(shuō),so文件就是常說(shuō)的動(dòng)態(tài)鏈接庫(kù), 都是C或C++編譯出來(lái)的。與Java比較它通常是用的Class文件(字節(jié)碼)。
3、Linux下的so文件時(shí)不能直接運(yùn)行的,一般來(lái)講,.so文件稱為共享庫(kù)。
4、so文件使用方法 (1)動(dòng)態(tài)庫(kù)的編譯。這里有一個(gè)頭文件:so_test.h,三個(gè).c文件:test_a.c、test_b.c、test_c.c,我們將這幾個(gè)文件編譯成一個(gè)動(dòng)態(tài)庫(kù):libtest.so。 命令:$ gcc test_a.c test_b.c test_c.c -fPIC -shared -o libtest.so不用該標(biāo)志外部程序無(wú)法連接。相當(dāng)于一個(gè)可執(zhí)行文件。 (2)動(dòng)態(tài)庫(kù)的鏈接 這里有個(gè)程序源文件 test.c 與動(dòng)態(tài)庫(kù) libtest.so 鏈接生成執(zhí)行文件 test: 命令:$ gcc test.c -L. -ltest -o test 命令:$ ldd test執(zhí)行test,可以看到它是如何調(diào)用動(dòng)態(tài)庫(kù)中的函數(shù)的。
SO文件格式即ELF文件格式,它是Linux下可執(zhí)行文件,共享庫(kù)文件和目標(biāo)文件的統(tǒng)一格式。
根據(jù)看待ELF文件的不同方式,ELF文件可以分為鏈接視圖和裝載視圖。鏈接視圖是鏈接器從鏈接的角度看待靜態(tài)的ELF文件。
從鏈接視圖看ELF文件,ELF文件由多個(gè)section組成,不同的section擁有不同的名稱,權(quán)限。而裝載視圖是操作系統(tǒng)從加載ELF文件到內(nèi)存的角度看待動(dòng)態(tài)的ELF文件。
從裝載視圖看ELF文件,ELF文件由多個(gè)segment,每一個(gè)segment都擁有不同的權(quán)限,名稱。實(shí)際上,一個(gè)segment是對(duì)多個(gè)具有相同權(quán)限的section的集合。
擴(kuò)展資料:
由于Android操作系統(tǒng)的底層基于Linux系統(tǒng),所以SO文件可以運(yùn)行在Android平臺(tái)上。Android系統(tǒng)也同樣開(kāi)放了C/C++接口供開(kāi)發(fā)者開(kāi)發(fā)Native程序。
由于基于虛擬機(jī)的編程語(yǔ)言JAVA更容易被人反編譯,因此越來(lái)越多的應(yīng)用將其中的核心代碼以C/C++為編程語(yǔ)言,并且以SO文件的形式供上層JAVA代碼調(diào)用,以保證安全性。
而ELF頭表記錄了ELF文件的基本信息,包括魔數(shù),目標(biāo)文件類型(可執(zhí)行文件,共享庫(kù)文件或者目標(biāo)文件),文件的目標(biāo)體系結(jié)構(gòu),程序入口地址(共享庫(kù)文件為此值為0),然后是section表大小和數(shù)目,程序頭表的大小和數(shù)目,分別對(duì)應(yīng)的是鏈接視圖和裝載視圖。
到此,以上就是小編對(duì)于linux鏈接文件有什么用的問(wèn)題就介紹到這了,希望這2點(diǎn)解答對(duì)大家有用。
本文名稱:so格式文件是什么文件?(Linux下的鏈接文件是什么)
分享鏈接:http://www.5511xx.com/article/cdeihoi.html


咨詢
建站咨詢
