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開始。連結後的可執行目标檔案就是相對整個程序的絕對位址。