- 編譯過程:
預處理--編譯--匯編--鏈接
-
預處理:用於將所有#include頭文件及#define等宏定義替換成真正的內容,預處理后的得到的仍然是文本文件,但體積會大 。
1.將頭文件中的內容(源文件之外的文件)插入到源文件中
2.進行了宏替換的過程,定義和替換了由#define指令定義的符號
3.刪除注釋的過程,注釋不會帶到編譯階段
4.條件編譯
-
編譯:將預處理之后的程序轉換成特定匯編代碼的過程 ,這里的編譯不是指從源文件到二進制程序的全過程
-
匯編:匯編過程將上一步的匯編代碼轉換成機器碼,這一步產生的文件叫目標文件,是二進制格式。
-
鏈接:鏈接過程將多個目標文件以及所需的庫文件(.so等)鏈接成最終的可執行文件
2.頭文件<>""區別
-
<>:尖括號<>表示這個文件,編譯器會從系統配置的庫環境中去尋找
-
"":雙引號表示這個文件是用戶提供的頭文件編譯器會從當前項目的當前目錄文件夾中尋找,如果找不到就會從系統默認的庫環境中尋找