面試題 gcc的編譯流程

2022-01-25 03:55:09 字數 423 閱讀 3394

gcc -e hello.c -o a.c

如果不使用-o指定輸出的檔案,會預設輸出到終端。所以建議使用同時使用-o選項。

還要注意:編譯時會保留#pragma編譯器指令,因為編譯器需要使用它們。

將c**翻譯成彙編**

gcc -s hello.c -o a.s

如果不使用-o選項指定輸出檔案,預設輸出到a.s。

將彙編**翻譯成機器碼

gcc -c hello.c -o a.o

如果不使用-o選項指定輸出檔案,預設輸出到a.o。

gcc hello.c -o a

gcc不帶任何引數。

如果不使用-o引數指定輸出的檔案,會預設生成a.out檔案。

以上指令,後面的指令都包含前面指令的功能,比如gcc不帶引數,不是僅僅適用於鏈結,它也可以包含整個編譯階段。

gcc編譯流程

可以利用gcc的引數來控制執行的過程,這樣就可以更深入的了解編譯c程式的過程。下面將通過對乙個程式的編譯來演示整個過程。includeint main 1 預處理 編譯器將c程式的標頭檔案編譯進來,還有巨集的替換,可以用gcc的引數 e來參看。命令 gcc e hello.c o hello.i 作...

gcc編譯流程

步驟命令 說明預處理 gcc e hello.c o hello.i 1.將所有 define刪除,並且展開所有的巨集定義 2.處理所有的條件預編譯指令,如 if ifdef undef ifndef endif elif 3.處理 include,將包含的檔案插入到此處,這是乙個遞迴的過程 4.刪...

GCC編譯流程

gcc使用的基本語法為 gcc option filename 這裡option是gcc使用時的一些選項,可以通過指定不同的選項實現不同的功能。這裡的filename是gcc要編譯的檔案,gcc會根據使用者指定的編譯選項以及所識別的檔案字尾名來對編譯檔案進行響應的處理。1,預處理階段 預處理功能分為...