首頁 >運維 >linux運維 >linux中o檔是什麼

linux中o檔是什麼

WBOY
WBOY原創
2022-06-28 17:03:408304瀏覽

在linux中,「.o」文件指的是目標文件,「.o」是object的縮寫;linux中的「.o」文件相當於windows中的「.obj」文件,目標文件包含機器代碼以及代碼在運行時使用的數據,如重定位信息,如用於鏈接或調試的程序符號表,此外還包括其他調試信息。

linux中o檔是什麼

本教學操作環境:linux7.3系統、Dell G3電腦。

linux中o檔是什麼

.o 就是object, 也就相當於windows下編譯的obj檔, 俗稱目標檔.

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

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

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

可執行目標檔案:包含二進位程式碼和數據,可以在記憶體中直接執行。

可重定位目標檔案:包含二進位程式碼和數據,可以在編譯時與其他可重定位目標檔案合併起來的,建立一個可執行目標檔案。

共用目標文件:是一種特殊的可重定位目標文件,可以在載入或執行時被動態載入到記憶體並連結。

事實上,編譯器和組譯器產生可重定位目標檔(包含共用目標檔)。連結器產生可執行目標檔。

Linux下目標檔案檔案格式:

由於編譯後的中間檔案(Windows下的.obj和Linux下的.o),動態連結函式庫與靜態連結庫(Windows下的.lib.dll和Linux下的.a.so),跟可執行檔的內容和結構相似,所以一般跟可執行檔一起採用同一種文件格式儲存。

擴充知識:

#產生.o檔:

gcc -c test.o test.c

產生.a檔:

ar cqs test.a test.o

.o就相當於windows裡的obj文件,一個.c或.cpp文件對應一個.o文件

.a 是好多個.o合在一起,用於靜態連接,即STATIC mode,多個. a可以連結產生一個exe的執行檔

.so 是shared object,用於動態連線的,和windows的dll差不多,使用時才載入

推薦學習:Linux影片教學

以上是linux中o檔是什麼的詳細內容。更多資訊請關注PHP中文網其他相關文章!

陳述:
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn