Source File <HiBKK.c> |
- Preprocessing
- Syntax Check & Compilation
- Assembly
- Linking
1. ขั้น Preprocessing
โปรแกรม GCC จะทำการรวม header file และ Defined Macros ต่างๆ ที่ถูกระบุเข้ากับ Source Code เดิม
ในตัวอย่างระบุ #include<stdio.h> ดังนั้น stdio.h ซึ่งเป็น header file จะถูกรวมเข้ากับ Source Code เดิม กลายเป็นไฟล์ใหม่ที่เรียกว่า Preprocessed Source File ซึ่งมีนามสกุล ( .i )
คำสั่งในการสร้างไฟล์ Preprocessed Source File คือ gcc -E [file_name.c] -o [file_name.i] ในตัวอย่างใช้คำสั่ง gcc -E HiBKK.c -o HiBKK.i และภาพด้านล่างคือลักษณะของ Preprocessed Source File ที่ได้
Preprocessed Source File <HiBKK.i> |
โปรแกรม GCC จะทำการตรวจสอบความถูกต้องของโครงสร้างภาษา ว่าถูกต้องหรือไม่ ถ้าถูกต้องโปรแกรมจะทำการเปลี่ยน Preprocessed Source File ไปเป็นภาษา Assembly โดยไฟล์ใหม่นี้จะมีนามสกุล ( .s ) ซึ่งเป็นภาษาสุดท้ายที่มนุษย์ยังสามารถเข้าใจได้ (The Last Human Exit)
การเปลี่ยนไฟล์จาก Preprocessed Source File ไปเป็นภาษา Assembly จะใช้คำสั่ง gcc -Wall -S [file.i] -o [file.s] ในตัวอย่างใช้คำสั่ง gcc -Wall -S HiBKK.i -o HiBKK.s ภาพด้านล่างเป็นตัวอย่างของไฟล์ Assembly
Assembly File <HiBKK.s> |
โปรแกรมฯ จะเปลี่ยนไฟล์ Assembly ให้กลายเป็น Machine Code ซึ่งมนุษย์ไม่สามารถอ่านออกได้ ไฟล์ใหม่นี้เรียกว่า Object File มีนามสกุล ( .o ) ถึงแม้ว่า Object File จะเป็น Machine Code แต่ก็ยังไม่สามารถทำงานได้เนื่องจากยังขาด Object Files จากระบบอีกหลายไฟล์
สำหรับคำสั่งในการเปลี่ยน Assemble Code ไปเป็น Machine Code คือ as [file.s] -o [file.o] ในตัวอย่างนี้ใช้คำสั่ง as HiBKK.s -o HiBKK.o
4. ขั้น Linking
โปรแกรมฯ จะรวม Object File ที่ได้จากขั้นตอนที่แล้ว เข้ากับ Object Files ต่างๆ ในระบบที่จำเป็นเพื่อสร้าง Executable File ที่สามารถนำไปใช้งานได้ บนระบบปฏิบัติการนั้นๆ
สำหรับคำสั่งในการรวม Object File ที่ได้เข้ากับ Object Files หรือไฟล์ระบบอื่นๆ ที่จำเป็น คือ gcc [file.o] -o [file] ในตัวอย่างนี้ใช้คำสั่ง gcc HiBKK.o -o HiBKK
ในการรันโปรแกรม Executable File ใช้คำสั้ง ./file ในตัวอย่างใช้ ./HiBKK