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 :

Code : Sélectionner tout - Visualiser dans une fenêtre à part
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