久久精品人人爽,华人av在线,亚洲性视频网站,欧美专区一二三

linux中o和a文件指的是什么

150次閱讀
沒有評論

共計 1518 個字符,預計需要花費 4 分鐘才能閱讀完成。

本篇內容主要講解“linux 中 o 和 a 文件指的是什么”,感興趣的朋友不妨來看看。本文介紹的方法操作簡單快捷,實用性強。下面就讓丸趣 TV 小編來帶大家學習“linux 中 o 和 a 文件指的是什么”吧!

在 linux 中,“.o”文件指的是目標文件,即存放目標代碼的計算機文件;目標文件包含著機器代碼(可直接被計算機中央處理器執行)以及代碼在運行時使用的數據,此外還包括其他調試信息。“.a”文件指的是靜態庫文件,是指要調用的函數或者過程鏈接到可執行文件中,成為可執行文件的一部分,動態鏈接所調用的函數代碼并沒有被拷貝到應用程序的可執行文件中去,而是在其中加入了所調用函數的描述信息。

o 就是 object,也就是相當于 windows 下編譯的 obj 文件,俗稱目標文件

a 就是 archive,也就相當于 window 的 VC 下編譯的 lib 文件,俗稱靜態庫文件;多個.a 可以鏈接生成一個 exe 的可執行文件。

.o 文件是鏈接文件,.a 靜態庫文件,靠.o 文件生成,作為一個庫外部程序提供函數,接口。生成.o 文件。

linux 中的 o 文件(目標文件)

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

Linux 下有 3 種目標文件形式:

可執行目標文件,可重定位目標文件和共享目標文件。也有對應的稱為可執行文件,目標文件,共享庫,只是說法不同,指的都是同樣的東西。

可執行目標文件:包含二進制代碼和數據,可以在存儲器中直接執行。

可重定位目標文件:包含二進制代碼和數據,可以在編譯時與其他可重定位目標文件合并起來的,創建一個可執行目標文件。

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

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

Linux 下目標文件文件格式:

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

linux 中的 a 文件(靜態庫文件)

.a 文件,是 LINUX 系統中的靜態鏈接庫文件。

所謂靜態鏈接是指把要調用的函數或者過程鏈接到可執行文件中,成為可執行文件的一部分。當多個程序都調用相同函數時,內存中就會存在這個函數的多個拷貝,這樣就浪費了寶貴的內存資源。.so 文件是共享庫文件(動態鏈接)。動態鏈接所調用的函數代碼并沒有被拷貝到應用程序的可執行文件中去,而是僅僅在其中加入了所調用函數的描述信息(往往是一些重定位信息),僅當應用程序被裝入內存開始運行時,在操作系統的管理下,才在應用程序與相應的.so 之間建立鏈接關系。

.a 文件是多個.o 文件的組合。.o 文件就是對象文件,里面包含的內容就是 01 這樣的機器可執行的指令,當程序要執行時還需要進行鏈接(link). 鏈接就是把多個.o 文件鏈成一個可執行文件。

什么是 Linux 系統

Linux 是一種免費使用和自由傳播的類 UNIX 操作系統,是一個基于 POSIX 的多用戶、多任務、支持多線程和多 CPU 的操作系統,使用 Linux 能運行主要的 Unix 工具軟件、應用程序和網絡協議。

到此,相信大家對“linux 中 o 和 a 文件指的是什么”有了更深的了解,不妨來實際操作一番吧!這里是丸趣 TV 網站,更多相關內容可以進入相關頻道進行查詢,關注我們,繼續學習!

正文完
 
丸趣
版權聲明:本站原創文章,由 丸趣 2023-07-13發表,共計1518字。
轉載說明:除特殊說明外本站除技術相關以外文章皆由網絡搜集發布,轉載請注明出處。
評論(沒有評論)
主站蜘蛛池模板: 奎屯市| 宁波市| 新建县| 涞源县| 淳化县| 永安市| 綦江县| 葵青区| 阿图什市| 任丘市| 重庆市| 宁陵县| 泰和县| 瓮安县| 资中县| 怀集县| 高青县| 浙江省| 泗洪县| 安图县| 嘉荫县| 太仓市| 军事| 无极县| 庆城县| 区。| 蛟河市| 乌兰县| 怀安县| 武胜县| 车险| 肥东县| 宁都县| 贡山| 晋城| 阿拉善右旗| 通榆县| 潍坊市| 芜湖市| 崇文区| 越西县|