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