假设我有2个静态库S1S2,它们是同一个库的不同版本,并且具有相同的C(不是C ++)接口,尽管实现方式有所不同。 2个共享库D1D2,每个共享库仅链接到S1S2。假设应用程序AS2链接,后者是最新的静态库,并通过D1动态加载D2dlopen。是D1只是使用S1的功能,还是有什么方法可以强制它使用S2的功能?在此设置中有什么地方出错吗?

编辑:使共享对象S绕过此问题的好方法,因为D1D2都可以链接到S呢?

最佳答案

D1只是使用S1的功能,还是有什么方法可以强制它使用S2的功能?


是的,D1将使用S1功能。
不可以,您不能强制它使用S2函数。


  在此设置中有什么地方出错吗?


这取决于您的库中的内容。

关于c++ - 共享对象符号解析,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/3931809/

10-13 08:39