gcc是GNU C Compiler的縮寫渠退,由GNU推出的多平臺編譯器,可以編譯C, C++, Object C等代碼混聊。gcc對C語言的處理分為四個步驟:
預(yù)處理射富,gcc對C語言源文件包含的頭文件和宏定義進行處理统刮,如#define, #include, #if;
編譯,gcc檢查代碼的語法是否有錯,并將代碼翻譯成匯編語言座咆,生成以.s為擴展名的匯編代碼文件;
匯編仓洼,gcc用編譯生成的匯編語言生成目標文件介陶,目標文件以.o為擴展名;
鏈接色建,gcc將生成的目標文件鏈接合成可執(zhí)行的文件斤蔓,同時也會把調(diào)用的系統(tǒng)函數(shù)鏈接到可執(zhí)行的文件中。
gcc的使用格式如下:
gcc [選項] 文件
gcc使用實例:
首先用vim新建一個名為hello.c的源文件镀岛,并輸入如下簡單代碼:
然后在終端中輸入如下命令:
gcc hello.c -o hello
該命令中,hello.c是待編譯的文件友驮,-o hello是生成名為hello的可執(zhí)行文件漂羊。執(zhí)行完該命令后,再執(zhí)行l(wèi)s命令可以看到當前目錄下有hello文件生成
./hello 表示在當前目錄下執(zhí)行hello文件卸留,該文件的執(zhí)行結(jié)果正是hello.c文件中的代碼執(zhí)行的結(jié)果走越。
現(xiàn)在把hello和hello.c~文件刪除,執(zhí)行如下命令:
gcc hello.c
那么在當前目錄下生成的文件為a.out
我們可以看到如果把選項和可執(zhí)行文件名省略掉耻瑟,gcc會默認可執(zhí)行文件名為a.out旨指。./a.out 命令的執(zhí)行結(jié)果和上述./hello命令的執(zhí)行結(jié)果一致赏酥。