Oui, cette configuration est possible.
En réponse à votre question sur la façon dont le système sait utiliser les symboles, rappelez-vous que tous les liens se produisent au moment de la construction. Après qu'il a été construit, il ne s'agit pas de "symboles", il suffit d'appeler diverses fonctions à différentes adresses.
Lors de la construction de libB.so, il établit ses liens vers libA.1.0.so. Il ne sait pas ou ne se soucie pas de savoir ce que font les autres applications qui l'utilisent, il sait juste comment cartographier ses propres appels de fonction.
Lors de la création de l'application elle-même, l'application est liée à libB.so. Quels que soient les appels libB.so, ils sont complètement inconnus de l'application. L'application établit également des liens statiques avec une bibliothèque, ce qui ne concerne pas libB.so. On obtient: si libA utilise des variables statiques, il y aura un ensemble de statiques accessibles à libB.so, et un ensemble de statiques indépendant et différent accessible à l'application.
Merci pour la clarification! Informations très utiles –