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

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


咨詢
建站咨詢
