day2 關於目標檔案

2021-06-28 04:28:57 字數 849 閱讀 6300

所謂目標檔案,就是我們在windows平台下開發生成的.obj檔案,在linux下.o檔案。在**編譯後但並未鏈結生成的檔案。

1.目標檔案的格式

目標檔案的格式和可執行文檔案(也就是我們在windows下常見到的exe檔案,dll檔案等)結構相似,所以一般採用一種格式儲存。目前windows下主要採用pe格式,linux下主要採用elf,但是他們兩個都有乙個共同的祖先coff(common file format)。不光目標檔案和執行檔案採用一樣的格式,動態鏈結庫和靜態鏈結庫也採用的是這一格式,但稍稍注意的是靜態鏈結庫檔案(也就是w下的lib和l下的.a),它是把很多目標檔案集合在了一起,並加上了索引。

2.目標檔案的內容

一般目標檔案是按「節」儲存,有的也叫「段」儲存。

file header

.text

.data

.bss

...other sections

section header table

string tables

symbol tables

主要由以下幾段組成:

**段:主要存放源**編譯後的機器指令經常被放在**段裡,一般放在.text中。

資料段: 主要存放全域性變數和區域性靜態變數,擴充套件名為.data。

bss段:沒有初始化的全域性變數和區域性靜態變數一般會放在這個段裡。注意全域性變數和區域性靜態變數的初始化值若為0,也會被放在bss段裡。

當然,在目標檔案中不只有這幾個段,還有很多段,比如存放偵錯程式版本資訊、除錯資訊、動態鏈結資訊等等。

還有需要注意的是檔案頭(也就是file header),file header 包含了整個檔案的基本屬性,比如elf檔案版本、目標機器號、程式入口位址等。

培訓 Day2 感想

昨天看了書 人家寫文件厲害,雖然語法基本上是忘光了,算是個半文盲了,竟然也能比較容易看懂 差點一下子自我感覺良好起來了 今天爽了,詞彙量急速膨脹 忽悠能力 因為看了下書,上課舒服多了 今天主要是對昨天提到的各個pa 22個 進行講解,大致描述了下各個pa裡的都有的gg和 gp,還有各個pa裡特定的s...

面試日記Day 2

這次面試的是一家上市公司,主要是做支付 交易這塊的。筆試 最後兩道解答題 1.寫個方法 翻轉字串 2.寫個單例模式 一面 大致內容是 答 jdk的excutors提供了一些預設執行緒池,但這些執行緒池的等待佇列是無界的,阿里的程式設計手冊上也不建議使用,一般使用threadpool類手動建立。答 主...

機器學習 day2

歸一化 將所有資料轉化到同一標準下,使的某乙個特徵對最終結果不會造成更大的影響。通過對原始資料進行變換把資料對映到 預設為 0,1 之間 問題 如果資料中異常點過多,會有什麼影響?最大值最小值會受影響。方差考量資料的穩定性。標準化 將所有資料進行變換到平均值為0,標準差為1之間。standardsc...