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