我用兩個不同的共享庫鏈接。這兩個庫定義了一些共享名稱但具有不同實現的符號。我不能讓每個庫都使用自己的實現。將兩個共享庫鏈接到一些相同的符號
例如,兩個庫都定義了一個全局函數bar()
,它們都在內部調用。圖書館從foo1()
調用它,圖書館二從foo2()
調用它。
Lib1.so:
T bar
T foo1() // calls bar()
Lib2.so:
T bar
T foo2() // calls bar()
如果我對Lib1.so鏈接到我的應用程序,然後從Lib2.so的Lib1.so落實酒吧甚至被稱爲當致電foo2()
。另一方面,如果我將我的應用程序鏈接到Lib2.so然後是Lib1.so,那麼bar總是從Lib2.so中調用。
有沒有辦法讓圖書館總是比其他圖書館更喜歡自己的實現?
嗨,你能告訴我,這是否也適用於鐺? –