Gcc編譯C程序常用選項
-o 指定目標文件名
-std=c99 用C99標准編譯
-Wall 警告全開
-c 只編譯不鏈接,生成中間文件
-g 生成調試信息
-O0 : 默認不優化(若要生成調試信息,最好不優化)
-O1 : 簡單優化,不進行速度與空間的權衡優化;
-O2 : 進一步的優化,包括了調度。(若要優化,該選項最適合,它是GNU發布軟件的默認優化級別;
-O3 : 雞肋,興許使程序速度更慢;
-funroll-loops : 展開循環,會使可執行文件增大,而速度是否增加取決於特定環境;
-Os : 生成最小執行文件;
-llibname 鏈接指定庫
注意GCC在鏈接庫的過程中對參數中庫的順序是有要求的,參數右側的庫會先於左邊的庫加載。
假如你要鏈接pthread庫,編譯命令可能是這樣的:gcc -std=gnu99 -Wall -o server *.c -lpthread
但不能是這樣的:gcc -std=gnu99 -Wall -lpthrad -o server *.c #-lpthread必須放在後面。