您好,登錄后才能下訂單哦!
這篇文章主要講解了“linux中o文件指的是什么”,文中的講解內容簡單清晰,易于學習與理解,下面請大家跟著小編的思路慢慢深入,一起來研究和學習“linux中o文件指的是什么”吧!
在linux中,“.o”文件指的是目標文件,“.o”是object的縮寫;linux中的“.o”文件相當于windows中的“.obj”文件,目標文件包含著機器代碼以及代碼在運行時使用的數據,如重定位信息,如用于鏈接或調試的程序符號表,此外還包括其他調試信息。
本教程操作環境:linux7.3系統、Dell G3電腦。
.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中o文件指的是什么”的內容了,經過本文的學習后,相信大家對linux中o文件指的是什么這一問題有了更深刻的體會,具體使用情況還需要大家實踐驗證。這里是億速云,小編將為大家推送更多相關知識點的文章,歡迎關注!
免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。