国产三级农村妇女在线,国产精品毛片a∨一区二区三区,国产乱子伦视频大全,国产精品色拉拉,国产欧美日韩一区二区三区,

首頁 > 技術(shù) > Linux

linux中o文件是什么

Linux 2022-07-14 21:43:27

Linux中,“.o”文件指的是目標(biāo)文件,“.o”是object的縮寫;linux中的“.o”文件相當(dāng)于windows中的“.obj”文件,目標(biāo)文件包含著機(jī)器代碼以及代碼在運行時使用的數(shù)據(jù),如重定位信息,如用于鏈接或調(diào)試的程序符號表,此外還包括其他調(diào)試信息。

教程操作環(huán)境:linux7.3系統(tǒng)、Dell G3電腦。

linux中o文件是什么

.o 就是object, 也就相當(dāng)于windows下編譯的obj文件, 俗稱目標(biāo)文件.

目標(biāo)文件(objectfile)即存放目標(biāo)代碼的計算機(jī)文件,它常被“稱作”二進(jìn)制文件(binaries)。目標(biāo)文件包含著機(jī)器代碼(可直接被計算機(jī)中央處理器執(zhí)行)以及代碼在運行時使用的數(shù)據(jù),如重定位信息,如用于鏈接或調(diào)試的程序符號表(變量和函數(shù)的名字),此外還包括其他調(diào)試信息。

Linux下有3種目標(biāo)文件形式:

可執(zhí)行目標(biāo)文件,可重定位目標(biāo)文件和共享目標(biāo)文件。也有對應(yīng)的稱為可執(zhí)行文件,目標(biāo)文件,共享庫,只是說法不同,指的都是同樣的東西。

可執(zhí)行目標(biāo)文件:包含二進(jìn)制代碼和數(shù)據(jù),可以在存儲器中直接執(zhí)行。

可重定位目標(biāo)文件:包含二進(jìn)制代碼和數(shù)據(jù),可以在編譯時與其他可重定位目標(biāo)文件合并起來的,創(chuàng)建一個可執(zhí)行目標(biāo)文件。

共享目標(biāo)文件:是一種特殊的可重定位目標(biāo)文件,可以在加載或者運行時被動態(tài)加載到存儲器并鏈接。

事實上,編譯器和匯編器生成可重定位目標(biāo)文件(包含共享目標(biāo)文件)。鏈接器生成可執(zhí)行目標(biāo)文件。

Linux下目標(biāo)文件文件格式:

由于編譯后的中間文件(Windows下的.obj和Linux下的.o),動態(tài)鏈接庫和靜態(tài)鏈接庫(Windows下的.lib.dll和Linux下的.a.so),跟可執(zhí)行文件的內(nèi)容和結(jié)構(gòu)相似,所以一般跟可執(zhí)行文件一起采用同一種文件格式存儲。

擴(kuò)展知識:

生成.o文件:

gcc -c test.o test.c

生成.a文件:

ar cqs test.a test.o

.o 就相當(dāng)于windows里的obj文件 ,一個.c或.cpp文件對應(yīng)一個.o文件

.a 是好多個.o合在一起,用于靜態(tài)連接 ,即STATIC mode,多個.a可以鏈接生成一個exe的可執(zhí)行文件

.so 是shared object,用于動態(tài)連接的,和windows的dll差不多,使用時才載入

推薦學(xué)習(xí):Linux視頻教程

以上就是linux中o文件是什么的詳細(xì)內(nèi)容,更多請關(guān)注其它相關(guān)文章!

TAg

加載中~

本網(wǎng)站LOGO受版權(quán)及商標(biāo)保護(hù),版權(quán)登記號:國作登字-2022-F-10126915,未經(jīng)湖南木星科技官方許可,嚴(yán)禁使用。
Copyright ? 2012-2022 湖南木星科技有限公司(木星網(wǎng))版權(quán)所有
轉(zhuǎn)載內(nèi)容版權(quán)歸作者及來源網(wǎng)站所有,本站原創(chuàng)內(nèi)容轉(zhuǎn)載請注明來源,商業(yè)媒體及紙媒請先聯(lián)系:aishangyiwan@126.com

工信部備案號:湘ICP備19012813號-5