Предположим, у меня есть 2 статические библиотеки S1
и S2
, которые являются разными версиями одной и той же библиотеки и имеют один и тот же интерфейс C (не C++), хотя реализации разные. 2 общие библиотеки D1
и D2
, каждая из которых ссылается только на S1
или S2
. Предположим, что приложение A
связывается с S2
, которая является более поздней из статических библиотек, и динамически загружает D1
и D2
с dlopen
. Будет ли D1
использовать только функции S1
s или есть способ заставить его использовать функции S2
s? Может ли что-то пойти не так в этой настройке?
РЕДАКТИРОВАТЬ: Является ли создание общего объекта S
хорошим способом обойти эту проблему, поскольку тогда D1
и D2
могут ссылаться на S
?