C++ Dynamique de Bibliothèque Partagée sur Linux

C'est un suivi à Dynamique Partagée de la Bibliothèque de la compilation avec g++.

Je suis en train de créer une classe partagée de la bibliothèque en C++ sur Linux. Je suis en mesure d'obtenir à la bibliothèque de la compilation, et je peux les appeler de la (non-classe) de fonctions en utilisant les tutoriels que j'ai trouvé ici et ici. Mes problèmes commencent lorsque j'essaie d'utiliser les classes qui sont définies dans la bibliothèque. Le deuxième tutoriel que j'ai liée montre comment charger les symboles pour créer des objets, des classes définies dans la bibliothèque, mais s'arrête de à l'aide de ces objets pour obtenir le travail fait.

Personne ne sait de plus tutoriel complet pour la création partagée bibliothèques de classe C++ qui montre également comment utilisation ces classes dans un exécutable séparé? Un très simple tutoriel qui montre la création de l'objet, de l'utilisation (simple getters et setters serait bien), et la suppression serait fantastique. Un lien ou une référence à un code open source qui illustre l'utilisation d'une bibliothèque de classe serait tout aussi bon.


Bien que les réponses de codelogic et nimrodm faire un travail, je voulais juste ajouter que j'ai ramassé une copie de Début De Linux Programmation depuis posant cette question, et son premier chapitre a exemple de code C et de bonnes explications pour la création et l'utilisation à la fois statiques et des bibliothèques partagées. Ces exemples sont disponibles par le biais de Google Recherche de livres dans une édition plus ancienne de ce livre.

  • Je ne suis pas sûr de comprendre ce que vous entendez par "utilisation", une fois un pointeur vers l'objet est retourné, vous pouvez l'utiliser comme vous utilisez tout autre pointeur vers un objet.
  • L'article que j'ai lié à montre comment créer un pointeur de fonction à un objet de l'usine de la fonction en utilisant dlsym. Il ne montre pas la syntaxe pour la création et l'utilisation des objets de la bibliothèque.
  • Vous aurez besoin du fichier d'en-tête décrivant la classe. Pourquoi pensez-vous que vous devez utiliser le "dlsym" au lieu de laisser l'OS de trouver et de lier la bibliothèque au moment du chargement? Laissez-moi savoir si vous avez besoin d'un exemple simple.
  • Quelle est l'alternative à l'utilisation de "dlsym"? Je suis (censé être) écrit 3 programmes C++ qui utilisent toutes les classes définies dans la bibliothèque partagée. J'ai aussi 1 script Perl qui va l'utiliser, mais c'est un tout autre problème pour la semaine prochaine.