1、預處理階段:
主要工作是將頭文件插入到編寫的代碼中,並生成帶有擴展名的文件”。我“用擴展名替換原始文件”。c“,但原始文件仍然保留,但實際文件在執行過程中已經更改。(此處的替換並不意味著原始文件被刪除。)
2、組裝階段:
插入壹個匯編語言程序並將代碼翻譯成匯編語言。編譯器首先要檢查代碼的規範性,是否有語法錯誤等。,以確定代碼的實際工作情況。檢查無誤後,編譯器會將代碼翻譯成匯編語言,同時翻譯帶有擴展名的文件”。我“進入帶擴展名的文件”。s”。
3.編譯階段:
將匯編語言翻譯成機器語言指令,將指令封裝成可以重定位目標程序的格式,並翻譯擴展名為“。s“轉換為擴展名為“的二進制文件。o”。
4.鏈接階段:
在示例代碼中,代碼文件被更改為調用標準庫中的printf函數。printf函數的實際存儲位置是壹個單獨編譯的目標文件(編譯的結果也是壹個擴展名為“。o”),所以在調用main函數時,需要將這個文件(即printf函數所在的編譯文件)與hello world文件集成在壹起,然後鏈接器就可以大顯神通,將兩個文件合並生成壹個可執行的目標文件。