-
dlopen de plusieurs lib
Bonjour,
Voici mon problème :
J'ai un programme qui load deux lib (A et B). Je ne connais pas à l'avance dans quel ordre dlopen() va les charger.
Dans la lib A j'aimerai utiliser des "symboles" de la lib B. Le problème c'est que si la lib A est chargée avant la lib B elle me renvoi forcement une erreur :
" undefined symbol: foo".
Quel est le meilleurs moyen pour pallier à ce genre de problème ? Charger la lib B dans chaque lib où je l'utilise ?
En gros c'est un système de plugins où certain aurais des dépendances d'autres plugins.
Merci ;)
-
Bonjour,
Si le plugin A a une dépendance sur le plugin B, alors le plus simple semble de vérifier au lancement de A si B est charge ou non. Si oui, tu continues, si non, tu charges B (ou demande son chargement).
Autre solution : tu passes par un fichier de configuration qui permet d'ordonnancer le lancement. Cela suppose que tu n'as pas de lancement de plugins a chaud (alors que d'autres sont deja en cours d'execution).
-
Merci pour ta réponse.
Au final ce que j'ai fais c'est linker la lib B à la lib A. B est maintenant chargé quand je charge A.