天天看點

GCC編譯過程和目标檔案格式

GCC編譯連結過程:

GCC編譯過程和目标檔案格式

指令

gcc -E hello.c -o hello.i

gcc -S hello.i –o hello.s

gcc –c hello.s –o hello.o

gcc hello.s –o hello 連結,生成可執行檔案

目标檔案分三種格式

1、可重定位目标檔案:二進制代碼和資料,由各個資料節(section)構成,從位址0開始。

2、可執行目标檔案:可運作的二進制代碼和資料。

3、共享目标檔案:一種特殊類型的可重定位目标檔案,動态加載連結。

【注】可重定位目标檔案中,各符号使用的是相對位址,位址從0開始。連結後的可執行目标檔案就是相對整個程序的絕對位址。

繼續閱讀