Chargement de classe via dlopen
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:
1 2
| [PROGRAMME PRINCIPAL]
- contient ModuleTemplate |
Code:
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 :
Code:
libclient.so: undefined symbol: _ZTV8FGestion
J'en conclut que le fait de contenir la définition de la classe A dans le .so ne suffit pas.
Mais alors comment faire ?
Merci d'avance