Разрешение символа общего объекта - PullRequest
0 голосов
/ 14 октября 2010

Предположим, у меня есть 2 статических библиотеки S1 и S2, которые являются разными версиями одной и той же библиотеки и имеют один и тот же интерфейс C (не C ++), хотя реализации разные. 2 общие библиотеки D1 и D2, каждая из которых связана только с S1 или S2. Предположим, приложение A связывается с S2, которое является более поздним из статических библиотек и динамически загружает как D1, так и D2 с dlopen. Будет ли D1 просто использовать функции S1 s, или есть ли способ заставить его использовать функции S2 s? Может ли что-то пойти не так в этой настройке?

РЕДАКТИРОВАТЬ: делает общий объект S хорошим способом обойти эту проблему, поскольку D1 и D2 могут оба ссылаться на S тогда?

1 Ответ

0 голосов
/ 14 октября 2010

Будет ли D1 просто использовать функции S1 s, или есть ли способ заставить его использовать S2 функции?

Да, D1 будет использовать S1 функций.Нет, вы не можете заставить его использовать S2 функции.

Может ли что-то пойти не так в этой настройке?

Это зависит от того, что находится внутри вашей библиотеки.

...