c++ 預處理器,編譯器,彙編器,鏈接器詳解

1.預處理器

c++的預處理器是詞法預處理器,主要是進行文本替換,宏展開,刪除註釋這類簡單工作。

gcc -E 選項可以得到預處理後的結果,擴展名為 .i; c++預處理不做任何語法檢查,語法檢查

是編譯器要做的事情,預處理之後僅僅是得到了真正的源代碼

2.編譯器

將文本文件.i翻譯成文本文件.s 得到彙編語言程序,改種語言程序中的每條語句都以一種

標準的文本格式確切的描述了一條低級機器語言指令;gcc -s 選項可以得到編譯後的彙編碼

擴展名為.s;

3.彙編器

將.s翻譯成機器語言指令,放入.o文件中 gcc -c選項可以得到.o文件;.o文件是一個二進制

文件,是字節編碼而不是字符;

4.鏈接器

將.o文件及需要用到的庫 .a或.so 打包成可執行文件。

===========華麗的分割線=========

一份源文件經過 詞法分析;語法分析;語義檢查中間代碼生成;代碼優化;目標代碼生成;最終得到

可執行文件。


c++ 預處理器,編譯器,彙編器,鏈接器詳解


分享到:


相關文章: