-O用來開啓優化編譯選項。
-O0:默認模式,不做任何優化。
-O1:優化。該模式下對於一個大的函數或功能會花費更多的時間和內存。
在-O1下:編譯會嘗試減少代碼體積和代碼運行時間。但是並不執行會花費大量時間的優化操作。
-O2:進一步優化.GCC執行幾乎所有支持的操作但不包括空間和速度之間權衡的優化。-O2優化等級下,並不執行循環展開和函數內聯優化操作。與-O1比較該優化-O2將會花費更多的編譯時間當然也會生成性能更好的代碼。
-O3:更進一步優化。-O3打開-O2指定的所有優化操作
-Os:針對程序空間大小優化(多用於嵌入式系統)。-Os使能-O2中除去會增加程序空間的所有優化參數。同時-Os還會執行更加優化程序空間的選項。
轉載出處
http://blog.chinaunix.net/uid-24954950-id-2956476.html
-static 是讓 gcc 進行靜態編譯,也就是把所有都需要的函數庫都集成進編譯出來的程序上,這個程序就可以不依賴外部的函數庫運行了,禁止與共享函數庫連接。