1.gcc編譯器對程序的編譯,分為四個階段:
1>預編譯(pre-processing):在預處理階段,輸入的是C語言的源文件,通常為*.c。它們一般帶有*.h之類的頭文件。這個階段主要處理源文件中的#ifdef,#include,#define預處理命令。該階段會生成一個中間文件*.i文件。
這個階段使用命令:
gcc –E tiger.c –o tiger.i
它通過對源文件tiger.c使用-E選項來生成中間文件tiger.i
2>編譯和優化(compiling):在編譯階段,輸入的是中間文件*i,編譯後生成匯編文件*.s
這個階段使用命令:
gcc –S tiger.i –o tiger.s
3>匯編(assembing):在匯編階段,將輸入的匯編文件*.s轉換成二進制機器代碼*.o.
這個階段使用命令:
gcc -c tiger.s –o tiger.o
4>鏈接(linking):最後在鏈接階段將輸入的二進制機器代碼文件*.o,www.linuxidc.com匯集成一個可執行的二進制代碼文件。
這個階段使用命令:
gcc tiger.o -o tiger
注:
以上所有階段,可以直接使用gcc -o tiger tiger.c,直接生成可執行文件。
gcc -o tiger tiger.c(也可以使用gcc tiger.c -o tiger)