Bonjour,
J'ai un souci lors de la création d'un programme qui doit charger un module.
Pour charger ma librairie dynamiquement, j'utilise la fonction dlopen.
Après avoir suivi ce qui est écrit ici : http://www.tldp.org/HOWTO/C++-dlopen/thesolution.html j'arrive donc a charger une classe correctement.
Le problème intervient lorsque je souhaite que ma classe me retourne une autre classe qui à été définit dans le module. En gros on pourrait représenter cela comme suit :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2 [PROGRAMME PRINCIPAL] - contient ModuleTemplate
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4 [MODULE] - contient une classe A - contient ModuleTemplate - contient une classe dérivée de ModuleTemplate qui peux retourner un objet de type A
Tant que je n'inclus pas la classe A tout vas bien, dès que je l'ajoute, j'obtient une erreur du type :
J'en conclut que le fait de contenir la définition de la classe A dans le .so ne suffit pas.
Code : Sélectionner tout - Visualiser dans une fenêtre à part libclient.so: undefined symbol: _ZTV8FGestion
Mais alors comment faire ?
Merci d'avance
Partager