Computer >> คอมพิวเตอร์ >  >> การเขียนโปรแกรม >> การเขียนโปรแกรม C

กระบวนการคอมไพล์/ลิงก์ทำงานอย่างไรใน C/C++


การรวบรวมโปรแกรม C++ ประกอบด้วยสามขั้นตอน -

  • กำลังประมวลผลล่วงหน้า − พูดง่ายๆ ว่า C Preprocessor เป็นเพียงเครื่องมือแทนที่ข้อความและสั่งให้คอมไพเลอร์ทำการประมวลผลล่วงหน้าที่จำเป็นก่อนการคอมไพล์จริง มันจัดการคำสั่งก่อนการประมวลผล เช่น #include, #define เป็นต้น
  • รวบรวม − การรวบรวมเกิดขึ้นในไฟล์ที่ประมวลผลล่วงหน้า คอมไพเลอร์แยกวิเคราะห์ซอร์สโค้ด C++ และแปลงเป็นรหัสแอสเซมบลี ซึ่งจะเรียกแอสเซมเบลอร์ที่แปลงรหัสแอสเซมบลีเป็นรหัสเครื่อง (ไบนารี) เป็นไฟล์อ็อบเจ็กต์ ไฟล์อ็อบเจ็กต์เหล่านี้สามารถอ้างถึงสัญลักษณ์ที่ไม่ได้กำหนดไว้ คอมไพเลอร์จะไม่แสดงข้อผิดพลาดเว้นแต่ว่าซอร์สโค้ดไม่มีรูปแบบที่ดี ข้อผิดพลาดทางไวยากรณ์ ข้อผิดพลาดในการแก้ปัญหาการโอเวอร์โหลดล้มเหลว ฯลฯ เกิดขึ้นในขั้นตอนนี้ นอกจากนี้ โปรดทราบว่าไฟล์อ็อบเจ็กต์เหล่านี้สามารถใช้เป็นไลบรารีแบบคงที่ได้เช่นกัน
  • การเชื่อมโยง − ตัวเชื่อมโยงสร้างเอาต์พุตการคอมไพล์สุดท้ายจากไฟล์อ็อบเจ็กต์ที่คอมไพเลอร์สร้างขึ้น เอาต์พุตนี้สามารถเป็นไลบรารีที่ใช้ร่วมกัน (หรือไดนามิก) หรือไฟล์เรียกทำงาน มันเชื่อมโยงไฟล์อ็อบเจ็กต์โดยแทนที่การอ้างอิงที่ไม่ได้กำหนดด้วยที่อยู่ที่ถูกต้อง ควรกำหนดสัญลักษณ์เหล่านี้ในไฟล์อ็อบเจ็กต์อื่นหรือในไลบรารี หากมีการกำหนดไว้ในไลบรารีอื่นที่ไม่ใช่ไลบรารีมาตรฐาน คุณจะต้องส่งผ่านไปยังคอมไพเลอร์อย่างชัดแจ้งเป็นอาร์กิวเมนต์เพื่อให้สามารถค้นหาและเชื่อมโยงได้