ลิงค์เกอร์คืออะไรและทำงานอย่างไร?
ตัวเชื่อมโยงเป็นซอฟต์แวร์ประเภทหนึ่งที่เชื่อมต่อไฟล์อ็อบเจ็กต์และไลบรารีเพื่อสร้างไฟล์ปฏิบัติการ ใช้ในการพัฒนาระบบปฏิบัติการ แอพพลิเคชั่น และซอฟต์แวร์อื่นๆ ลิงก์เกอร์รับไฟล์อ็อบเจ็กต์ที่สร้างโดยคอมไพเลอร์และไลบรารีเป็นอินพุต และสร้างไฟล์ปฏิบัติการเป็นเอาต์พุต
ลิงก์เกอร์ทำหน้าที่หลายอย่าง รวมถึง:
1 การแก้ไขการอ้างอิงเชิงสัญลักษณ์: เมื่อโปรแกรมถูกเขียนด้วยภาษาระดับสูง อาจมีการอ้างอิงเชิงสัญลักษณ์ไปยังฟังก์ชันหรือตัวแปรที่ไม่ได้กำหนดไว้ในซอร์สโค้ดปัจจุบัน ตัวเชื่อมโยงแก้ไขการอ้างอิงเหล่านี้โดยการค้นหาคำจำกัดความของฟังก์ชันหรือตัวแปรในไฟล์อ็อบเจ็กต์หรือไลบรารีอื่น ๆ
2 การย้ายรหัสและข้อมูล: เมื่อคอมไพลเลอร์สร้างไฟล์อ็อบเจ็กต์ ไฟล์เหล่านั้นอาจมีรหัสและข้อมูลที่เกี่ยวข้องกับตำแหน่งของไฟล์อ็อบเจ็กต์ ตัวเชื่อมโยงจะย้ายรหัสและข้อมูลนี้ไปยังตำแหน่งที่ถูกต้องในไฟล์ปฏิบัติการ
3 การแยกโค้ดและข้อมูลที่ไม่จำเป็น: ตัวเชื่อมโยงสามารถดึงโค้ดและข้อมูลที่ไม่จำเป็นในไฟล์ปฏิบัติการขั้นสุดท้ายออกไป ช่วยลดขนาดและปรับปรุงประสิทธิภาพของมัน
4 การสร้างไฟล์ปฏิบัติการ: ตัวเชื่อมโยงจะใช้ไฟล์อ็อบเจ็กต์และไลบรารีเป็นอินพุต และสร้างไฟล์ปฏิบัติการที่สามารถรันบนเครื่องเป้าหมายได้ มีตัวเชื่อมโยงหลายประเภทให้เลือก รวมถึง:
1 ตัวเชื่อมโยงแบบไดนามิก: ตัวเชื่อมโยงเหล่านี้สร้างไฟล์ปฏิบัติการที่มีการอ้างอิงไปยังไลบรารีและไฟล์อ็อบเจ็กต์อื่น ๆ ที่ขึ้นอยู่กับ เมื่อโปรแกรมรัน ตัวเชื่อมโยงแบบไดนามิกจะโหลดการขึ้นต่อกันเหล่านี้ และแก้ไขการอ้างอิงเชิงสัญลักษณ์ใดๆ ที่รันไทม์
2 ตัวเชื่อมโยงแบบคงที่: ตัวเชื่อมโยงเหล่านี้สร้างไฟล์ปฏิบัติการที่มีการขึ้นต่อกันทั้งหมดที่ฝังอยู่ภายใน ซึ่งหมายความว่าโปรแกรมสามารถทำงานได้โดยไม่ต้องพึ่งพาใดๆ เพิ่มเติม แต่ก็หมายความว่าขนาดของไฟล์ปฏิบัติการจะมีขนาดใหญ่ขึ้น
3 ตัวเชื่อมโยงที่แชร์: ตัวเชื่อมโยงเหล่านี้สร้างไฟล์ปฏิบัติการที่มีไลบรารีที่ใช้ร่วมกัน ซึ่งเป็นคอลเลกชันของโค้ดและข้อมูลที่หลายโปรแกรมสามารถใช้ได้ เมื่อโปรแกรมเชื่อมโยงกับไลบรารีที่ใช้ร่วมกัน เฉพาะฟังก์ชันและตัวแปรที่จำเป็นเท่านั้นที่จะรวมอยู่ในไฟล์ปฏิบัติการขั้นสุดท้าย โดยสรุป ตัวเชื่อมโยงเป็นส่วนสำคัญของกระบวนการพัฒนาซอฟต์แวร์ เนื่องจากพวกมันรับไฟล์อ็อบเจ็กต์ที่สร้างโดยคอมไพเลอร์ และไลบรารีและสร้างไฟล์ปฏิบัติการที่สามารถรันบนเครื่องเป้าหมายได้ โดยทำหน้าที่หลายอย่าง รวมถึงการแก้ไขการอ้างอิงเชิงสัญลักษณ์ การย้ายโค้ดและข้อมูล การแยกโค้ดและข้อมูลที่ไม่จำเป็น และการสร้างไฟล์ปฏิบัติการ มีตัวเชื่อมโยงหลายประเภทให้เลือก รวมถึงตัวเชื่อมโยงแบบไดนามิก คงที่ และแบบแชร์