Tôi liên kết với hai thư viện được chia sẻ khác nhau. Cả hai thư viện đều xác định một số biểu tượng có chung tên nhưng có các cách triển khai khác nhau. Tôi không thể làm cho mỗi thư viện sử dụng việc triển khai của riêng mình qua thư viện khác.Liên kết hai thư viện được chia sẻ với một số biểu tượng giống nhau
Ví dụ: cả hai thư viện xác định hàm toàn cầu bar()
mà mỗi cuộc gọi đều gọi nội bộ. Một thư viện gọi nó từ foo1()
và thư viện hai gọi nó từ foo2()
.
Lib1.so:
T bar
T foo1() // calls bar()
Lib2.so:
T bar
T foo2() // calls bar()
Nếu tôi liên kết ứng dụng của tôi chống lại Lib1.so và sau đó Lib2.so việc thực hiện thanh từ Lib1.so được gọi là thậm chí khi gọi foo2()
. Nếu mặt khác, tôi liên kết ứng dụng của tôi với Lib2.so và sau đó Lib1.so, sau đó thanh luôn được gọi từ Lib2.so.
Có cách nào để làm cho thư viện luôn thích việc triển khai của chính nó trên bất kỳ thư viện nào khác không?
Xin chào, bạn có thể cho tôi biết điều này có áp dụng cho tiếng kêu không? –