目標檔案格式

2021-09-30 17:20:05 字數 437 閱讀 9631

unix 最早的可執行檔案格式為a.out格式,它的設計非常的簡單,以至於後來共享庫這個概念出現的時候,a.out格式就變得捉襟見肘;

於是人們設計了coff格式來解決這個問題,coff是由unix system v release 3首先提出並使用的格式規範,

後來微軟公司基於coff格式,制定了pe格式標準;

system v release 4在coff格式的基礎上引入了elf格式;

這就是為什麼目前pe和elf格式如此相似的原因。

四種elf檔案型別:

1:*.o 可重定位檔案(relocatable file);

2:*.exe 可執行檔案(executable file)

3:*.so *.dll 共享目標檔案(shared object file)

4:*.dump 核心轉儲檔案(core dump file)

目標檔案格式

在linux 0.12 系統中,gnu gcc 或gas 編譯輸出的目標模組檔案和鏈結程式生成的可執行檔案都使用了unix傳統的a.out格式。這是一種被稱為彙編與鏈結輸出 assembly linker editor output 的目標檔案格式。對於具有記憶體分頁機制的系統來說,這是一種簡單有效...

目標檔案格式

程式從原始碼編譯為目標 的時候,這個目標檔案的格式是怎麼樣的?elf目標檔案有 段,資料段和bss段。elf目標檔案的標頭檔案,段表,重定位表,字串表,符號表,除錯表。無論是可執行檔案,目標檔案或庫,它們實際上都是一樣基於段的檔案或是基於這種檔案的集合。程式的源 經過編譯後,按照 和資料分別存放到相...

Linux鏈結 目標檔案格式

將各種 段和資料段收集組合成為乙個單一檔案的過程。鏈結器的出現使得構建大型軟體系統成為可能,因為它使得各個模組可以單獨完成編譯。當需要改進模組時,單獨的修改相應的模組並編譯,通過鏈結器重新鏈結生成新版本的軟體系統。sum.cpp中定義乙個函式int sum int a,int b main.cpp中...