Supposons que j'ai 2 libs statiques S1
et S2
qui sont des versions différentes de la même lib et ont la même interface C (non C++) bien que les implémentations soient différentes. 2 bibliothèques partagées D1
et D2
chacune d'entre elles liée à S1
ou S2
uniquement. Supposons une application A
liens avec S2
qui est le plus récent des bibliothèques statiques et charge dynamiquement à la fois D1
et D2
avec dlopen
. Est-ce que D1
utilisera les fonctions S1
s ou est-il possible de l'utiliser pour utiliser les fonctions S2
? Quelque chose peut-il aller mal dans cette configuration?Résolution de symbole d'objet partagé
EDIT: Est-ce un objet partagé S
une bonne façon de contourner ce problème D1
et D2
peut à la fois lien S
alors?
Que voulez-vous dire par ce qui se trouve dans les bibliothèques? Ce n'est pas clair pour moi. – nakiya
Je veux dire que cela dépend de ce qui se trouve dans 'S1' et' S2'. Si elles ont des données statiques globales par exemple, elles ne seront pas partagées entre les deux. Cela peut ou peut ne pas être ce que vous voulez. –