深入理解計算機系統之編譯系統

GCC編譯器驅動程序讀取源文件hello.c,並把它翻譯成一個可執行目標文件hello。可以分成四個階段,執行這四個階段的程序(預處理器,編譯器,彙編器和鏈接器)構成了編譯系統。


  • 預處理階段  預處理器(CPP)根據#開頭的命令,告訴預處理器讀取頭文件內容並插入到程序文本中。得到了.i爲擴展名的程序。
  • 編譯階段 編譯器(ccl)將hello.i翻譯成hello.s,它包含了一個彙編語言程序
  • 彙編階段  彙編器(aa)將hello.s翻譯成機器語言指令,並將指令打包成“可重定位目標程序”的格式,保存到二進制文件hello.o中。
  • 鏈接階段  把hello.o與已經單獨編譯好的目標文件(類似printf.o)相合並,鏈接器ld則負責合併。最終的結果hello則是一個可執行目標文件,可以被加載到內存中,由系統執行
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章