經過前一段時間的學習,我了解了在linux條件下c語言和c++程式的編譯過程以及所涉及到的編譯使用命令,今天我就來總結一下這些內容。
預編譯期的作用:(1)刪除注釋;(2)處理預處理指令;(3)將包含的標頭檔案展開。 編譯期的作用:(1)語法分析;(2)語義分析;(3)彙總符號。 彙編期的作用:(1)將彙編指令翻譯成二進位制檔案;(2)生成符號表。
下面我們再來了解一下在linux條件下編譯期所使用的一些編譯命令:
編譯期所做的工作是**優化。彙編期所做的工作是將**生成各種段。鏈結期所做的工作是:(1)合併各個段;(2)調整段的起始位置;(3)合併符號表,並進行符號分析(只會解析global,不會解析local);(4)進行符號重定位工作。
這裡有部分與檔案資訊有關的命令:
一般資料和指令都會生成各種段存放在二進位制目標檔案中,在linux條件下編譯源**和鏈結會產生乙個預設執行檔案,檔名為a.out,我們來看一下main.o檔案以及a.out檔案的主要構造:
我們來了解一下檔案編譯過程中生成的主要段以及段中所儲存的內容:
下面我們通過一段**幫助我們更好的理解資料的存放位置:
今天就總結這麼多,有什麼不對的地方還請各位指點一下。
LInux下C語言原始碼編譯的過程
原始碼編譯的過程 原始碼 預處理 編譯 彙編 鏈結 執行 大致可分為三步 configure make make install 總的來說 make就做了編譯彙編的工作,他是根據makefile的檔案來編譯彙編的 而makefile是configure根據乙個叫做makefile.in的模板檔案生成...
C語言編譯過程
編譯,編譯程式讀取源程式 字元流 對之進行詞法和語法的分析,將高階語言指令轉換為功能等效的彙編 再由匯程式設計序轉換為機器語言,並且按照作業系統對可執行檔案格式的要求鏈結生成可執行程式。c源程式標頭檔案 預編譯處理 cpp 編譯程式本身 優化程式 匯程式設計序 鏈結程式 可執行檔案 1.編譯預處理讀...
C語言編譯過程
編譯,編譯程式讀取源程式 字元流 對之進行詞法和語法的分析,將高階語言指令轉換為功能等效的彙編 再由匯程式設計序轉換為機器語言,並且按照作業系統對可執行檔案格式的要求鏈結生成可執行程式。c源程式標頭檔案 預編譯處理 cpp 編譯程式本身 優化程式 匯程式設計序 鏈結程式 可執行檔案 1.編譯預處理 ...