GCC編譯工具鏈

2021-09-09 05:45:49 字數 919 閱讀 5742

編譯過程控制:

-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...