編譯過程一般分為6步: 掃瞄(詞法分析)、語法分析、語義分析、源**優化、**生成和目標**優化,每個過程所做的事情及輸出總結如下:
步驟做的事情或輸出
掃瞄(詞法分析)
將源**的字串行分割成一系列記號
語法分析
對記號進行語法分析,產生語法樹
語義分析
編譯期間用的是靜態語義分析,對語法樹的表示式標記型別
源**優化
將一些可以確定的東西先確定下來,生成中間語言
**生成和目標**優化
**生成器將中間**轉成目標機器**,因為目標機器 有不同的字長、暫存器、整數資料型別等。
鏈結 裝載與庫 2 編譯和鏈結
1 預處理 主要的處理規則如下 gcc e hello.c o hello.i e表示只進行預編譯2 編譯 將預處理完的檔案進行一系列的詞法分析 語法分析 語義分析和 優化。gcc s hello.c o hello.s 3 彙編 將彙編 轉換成機器碼 gcc c hello.s o hello.o...
鏈結 裝載與庫(2) 編譯和鏈結2 1
2.1 被隱藏了的過程 通常整合開發環境 ide 會將編譯和鏈結的過程一步完成,稱為構建 build 即時使用命令列來編譯乙個源 檔案,簡單地一句 gcc hello.c 命令實際上也包含了非常複雜的過程。乙個gcc過程可以分解為4個步驟,分別是預處理 prepressing 編譯 compilat...
gcc編譯器的鏈結 裝載問題
gcc是一款linux系統上普遍使用的輕便型 編譯工具,在bash shell下通過命令列操作可完成程式 的編譯 彙編 鏈結工作。gcc基本編譯指令格式如下 gcc o executefile sourcefile.c l 庫檔案路徑 l 動態庫名字 i 標頭檔案路徑 編譯時,gcc按照從右向左的順...