C語言編譯過程詳解

前言

C語言程序從源代碼到二進(jìn)制行程序都經(jīng)歷了那些過程?本文以Linux下C語言的編譯過程為例,講解C語言程序的編譯過程。

編寫hello world C程序:

// hello.c #include <stdio.h> int main(){ printf("hello world!\n");
}

編譯過程只需:

$ gcc hello.c # 編譯 $ ./a.out # 執(zhí)行 hello world!

這個(gè)過程如此熟悉,以至于大家覺得編譯事件很簡單的事。事實(shí)真的如此嗎?我們來細(xì)看一下C語言的編譯過程到底是怎樣的。

上述gcc命令其實(shí)依次執(zhí)行了四步操作:1.預(yù)處理(Preprocessing), 2.編譯(Compilation), 3.匯編(Assemble), 4.鏈接(Linking)。