我用两个不同的共享库链接。这两个库定义了一些共享名称但具有不同实现的符号。我不能让每个库都使用自己的实现。将两个共享库链接到一些相同的符号
例如,两个库都定义了一个全局函数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中调用。
有没有办法让图书馆总是比其他图书馆更喜欢自己的实现?
嗨,你能告诉我,这是否也适用于铛? –