gcc編譯引數:
-g:為了gdb除錯使用,預設加上有利於後期直接定位coredump
-o2:優化選項:o0 -->> o1 -->> o2 -->> o3
-o0 不進行優化處理。
-o 或 -o1 優化生成**。
-o2 進一步優化。
-o3 比 -o2 更進一步優化,包括 inline 函式
-pipe:使用管道代替編譯中臨時檔案,
加速編譯
-wall:顯示警告資訊;
-werror:
將所有的警告當成錯誤處理,有利於提公升編寫**質量
-fpic :指的是位址無關**。編譯出來的**中,沒有絕對位址,全部使用相對位址,故而**可以被載入器載入到記憶體的任意
位置,都可以正確的執行。
這正是共享庫所要求的,共享庫被載入時,在記憶體的位置不是固定的。
-shared :生成共享庫檔案.so
gcc 引數說明
gcc c 檔案只編譯生成.o不鏈結 gcc o 檔案 可執行檔名 檔案 o 鏈結生成可執行檔案 下面是簡單例子 fun.h void fun fun.c include include fun.h void fun dfun.c include include fun.h int main int...
gcc 引數說明
l引數就是用來指定程式要鏈結的庫,l引數緊接著就是庫名,那麼庫名跟真正的庫檔名有什麼關係呢?就拿數學庫來說,他的庫名是m,他的庫檔名是libm.so,很容易看出,把庫檔名的頭lib和尾.so去掉就是庫名了 好了現在我們知道怎麼得到庫名,當我們自已要用到乙個第三方提供的庫名字libtest.so,那麼...
gcc 引數說明
g 產生帶除錯資訊的編譯後目標 供偵錯程式 gdb 使用 gcc g source.c c 預處理時不刪除注釋資訊 配合 e使用 o 使用編譯優化級別1編譯程式。o後還可附帶其他的數值,表示不同的優化級別。級別越大優化效果越好,但編譯時間越長 o0 無優化 預設 o和 o1 優化可執行檔案大小及執行...