編譯過程控制:
-e:預處理,會呼叫cpp預處理器,但不生成檔案。 gcc –e main.c -o main.i編譯選項設定:-c : 預處理時,不刪除注釋資訊
-s :生成彙編檔案, gcc合併預編譯和編譯,呼叫ccl程式完成
-c:將原始檔編譯成目標檔案,但是不鏈結,呼叫彙編器as
-o : 輸出目標名稱, gcc預設編譯出來的檔案是a.out
-m : 生成檔案關聯依賴關係
-md : 和-m相同,但是將輸出匯入到.d檔案裡面
-mm : 生成檔案關聯依賴關係,但忽略#include產生的依賴關係
–verbose : 檢視gcc工作流程
-g : 編譯時產生除錯資訊編譯優化選項:-static : 禁止使用動態庫
-share : 盡量使用動態庫
-ldir : 指定庫搜尋路徑,預設編譯器只在標準庫的目錄尋找
-llibname : 指定編譯時使用的庫。 gcc -lname main.c,編譯時使用libname.a庫
-idir : 指定標頭檔案搜尋路徑
-shared : 生成共享目標檔案
-w : 不生成任何警告資訊
-wall : 生成所有警告資訊
-std=c99 : 指定c標準, gcc預設的標準是gnu c
-o0 : 編譯器關閉所有優化選項,編譯時不會優化**-o1 : 預設值
-o2 : 推薦的優化等級:提高**效能的同時不會增大檔案體積
-o3 : 最高優化級別,不建議使用
-os : 優化**尺寸,適合儲存資源緊張的系統,不推薦使用
編譯gcc時關於工具鏈的調整
specs dirname gcc print libgcc file name specs gcc dumpspecs sed e s lib 64 ld tools g e cpp specs echo new specs file is specs unset specs 再設定成預設值 gc...
GCC 編譯命令GUN工具鏈的使用
binutils原始碼工具包中的常用命令 gcc g ld ldd nm strings readelf addr2line strip objcopy as ar gdb 1 gcc g 編譯器 示例 gcc c test.c gcc o test test.c gcc e o test.i te...
gcc 引數 gcc編譯工具簡介
編譯的過程是乙個語言轉換的過程,由人能看懂的程式語言轉換為機器能看懂的二進位制語言。yaos的開發過程中,我們選擇gcc作為這個轉換器。我使用的系統是macos ak 2 yaos akilis uname adarwin ak 2.local 19.3.0 darwin kernel versio...