我链接了两个不同的共享库。这两个库都定义了一些共享名称但具有不同实现的符号。我不能使每个库都使用自己的实现。
例如,两个库都定义了一个全局函数bar(),每个函数都在内部调用。库1调用它foo1(),库2调用它foo2()。
lib1.so:
T bar
T foo1() // calls bar()
Lib2.so:
T bar
T foo2() // calls bar()
如果我将应用程序链接到Lib1.so,然后链接到Lib2.so,则即使调用,也会调用Lib1.so的bar实现foo2()。另一方面,如果我将应用程序链接到Lib2.so,然后链接到Lib1.so,则总是从Lib2.so调用bar。
有没有办法使一个库始终比其他任何库更喜欢其自己的实现?
相关分类