4
หมายเลข SO (วัตถุที่ใช้ร่วมกัน) ทำงานอย่างไร
ฉันทราบว่าวัตถุที่ใช้ร่วมกันภายใต้ Linux ใช้ "หมายเลข" คือวัตถุที่ใช้ร่วมกันรุ่นต่าง ๆ จะได้รับส่วนขยายต่างกันตัวอย่างเช่น example.so.1 example.so.2 ฉันเข้าใจความคิดที่จะมีสองไฟล์ที่แตกต่างกันเช่นที่ไลบรารีสองเวอร์ชันสามารถมีอยู่บนระบบ (ตรงข้ามกับ "DLL Hell" บน Windows) ฉันต้องการที่จะรู้วิธีการทำงานในทางปฏิบัติ? บ่อยครั้งที่ผมเห็นว่าexample.soในความเป็นจริงการเชื่อมโยงสัญลักษณ์example.so.2ที่.2เป็นรุ่นล่าสุด แอปพลิเคชันนั้นขึ้นอยู่กับเวอร์ชันที่เก่ากว่าของการexample.soระบุว่าถูกต้องอย่างไร มีกฎใดที่ต้องใช้ตัวเลขหรือไม่ หรือนี่เป็นเพียงแค่การประชุม? เป็นกรณีที่ไม่เหมือนกับใน Windows ที่มีการถ่ายโอนซอฟต์แวร์ระหว่างระบบหากระบบมีวัตถุที่ใช้ร่วมกันรุ่นใหม่กว่ามันถูกเชื่อมโยงไปยังรุ่นที่เก่ากว่าโดยอัตโนมัติเมื่อรวบรวมจากแหล่งที่มาหรือไม่ ฉันสงสัยว่าสิ่งนี้เกี่ยวข้องกับldconfigแต่ไม่แน่ใจว่าจะทำอย่างไร
123
linux
dynamic-linking