【gcc -E test.c -o test.i------>預處理文件生成.i 文件。】
-
1、c語言程序生成過程
-
C語言程序的生成過程可以簡單的分為:編輯、預處理、編譯、匯編、鏈接五個階斷。
-
下面所有的操作以hello world程序為例,源碼文件命名為t.c,源碼內容如下:
-
#include <stdio.h>
-
int main()
-
{
-
printf("hello world\n");
-
return 0;
-
}
-
2、預處理階斷
預處理階斷是對c源碼中的預處理代碼進行處理。
gcc -E -o t.i t.c
-
3、編譯階斷
編譯階斷是將c源碼處理為匯編代碼。
gcc -S -o t.s t.i
或者
gcc -S -o t.s t.c
-
4、匯編階斷
匯編階斷是將匯編代碼處理為二進制代碼。
gcc -c -o t.o t.s
或者
gcc -c -o t.o t.c
-
5、鏈接階斷
鏈接階斷將二進制代碼打包成一個操作系統可以識別的可執行文件格式,linux是elf格式,windows上是pe格式。
gcc -o t t.o
或者
gcc -o t t.c
-
-
6、運行階斷
-
運行階斷,有操作系統的可執行文件加載器負責加載並執行程序。
-
./t