一個程序從開始運行到結束的完整過程(四個過程)
1、編譯預處理:處理偽指令
1> 頭文件包含
2> 宏定義
3> 條件編譯 #if #endif
gcc -E xxx.c -o xxx.i
2、編譯:把預處理之后的文件進行語法分析,生成匯編代碼
gcc -S xx.i -o xx.s
3、匯編:將匯編文件生成機器代碼(二進制代碼)
as xx.s -o xx.o
4、鏈接:去指定路徑下找庫函數 (頭文件包含的是聲明,具體實現封裝在庫中)
gcc xx.o -o xx
-c: 只編譯不鏈接 (只做編譯過程的前3步)
-g: 加入調試信息 供gdb調試