天天看點

源碼到可執行檔案過程

1.c++中,聲明const int i,是在編譯做到 i隻可讀的

2.由多個源檔案組成的C程式,經過編輯、預處理、編譯、連結等階段會生成最終的可執行程式。連結階段可以發現被調用的函數未定義

解析:const用來說明所定義的變量是隻讀的。 這些在編譯期間完成,編譯器可能使用常數直接替換掉對此變量的引用。

源代碼到可執行檔案的過程

源代碼-->預處理-->編譯-->優化-->彙編-->連結-->可執行檔案

(1).編輯:也就是編寫C/C++程式。 (2).預處理:相當于根據預處理指令組裝新的C/C++程式。經過預處理,會産生一個沒有宏定義,沒有條件編譯指令,沒有特殊符号的輸出檔案,這個檔案的含義同原本的檔案無異,隻是内容上有所不同。 (3).編譯:将預處理完的檔案進行一系列詞法分析、文法分析、語義分析及優化後,産生相應的彙編代碼檔案。 (4).連結:通過連結器将一個個目标檔案(或許還會有庫檔案)連結在一起生成一個完整的可執行程式。 連結程式的主要工作就是将有關的目标檔案彼此相連接配接,也就是将在一個檔案中引用的符号同該符号在另外一個檔案中的定義連接配接起來,使得所有的這些目标檔案成為一個能夠被作業系統裝入執行的統一整體。在此過程中會發現被調用的函數未被定義。