Lier une bibliothèque qui est une compilation liée à une autre bibliothèque

J’ai un binary1 qui est un temps de compilation lié à une autre bibliothèque1.so Pour append des fonctionnalités, j’ai créé library2.so qui utilise libas_sdk.so.

La fonctionnalité de library2.so ne fonctionne que si dlopen (libas_sdk.so) est un succès, sinon il retourne normalement et effectue d’autres tâches.

Maintenant, library1.so doit utiliser library2.so si nécessaire et utiliser la nouvelle fonctionnalité.

J’ai essayé plusieurs options de compilation et de liaison mais j’ai obtenu des erreurs de symboles ldd ou non résolues.

Veuillez suggérer.

dlopen () renverra le succès si la lib est déjà liée.

Parce que library1.so doit utiliser library2.so, vous devez les lier tous deux à binary1. (-llibrary1 -llibrary2)

De votre question semble, cette bibliothèque2.so liens dans le runas libas_sdk.so. Cela se produit probablement lorsque vous appelez un certain init_library2 () ou une fonction avec des données de configuration.

Je pense que le problème n’est pas lié à votre liaison, mais à votre binary1. Cette initialisation de library2 (ou library1) est ce que vous faites trop tôt ou trop tard. IMHO votre binary1 devrait être lié avec une simple -llibrary1 -llibrary2.