1,預處理階段(預編譯)
gcc -E test.c -o test.i
(其中-o file輸出到指定文件file)
2,編譯階段
gcc -S test.i -o test.s
(test.s就是生成的彙編語言文件)
3,彙編
gcc -c test.s -o test.o
(test.o爲目標程序)
4,連接
gcc test.o -o test
(可執行文件test)
小結:也可以直接完成,編譯連接過程
gcc test.c -o test
5,關於優化
time命令可以查看運行時間
其中,real爲程序總的執行時間,包括進程的調度,切換等時間
user:用那個花執行時間
sys:內核執行時間
優化參數選項:
-O0不進行優化
-O1基本優化,使執行程序變得更快
-O2在O1基礎之上進一步優化,如處理器指令調度
-O3開啓所有優化
-Os生成最小可執行文件,主要用於嵌入式領域。
6,關於編譯告警和出錯選項。
-ansi 支持符合ANSI標準的C程序
-pedantic 允許發出ANSI C標準所列的全部警告信息
-w 關閉所有告警
-Wall 允許發出gcc提供的所有有用的告警信息
-werror 把所有的告警信息轉化成錯誤信息,並在告警發生時終止編譯