Maison >développement back-end >C++ >Comment puis-je créer et utiliser des bibliothèques de classes C partagées dynamiques sous Linux ?
Bibliothèques de classes C partagées dynamiques sous Linux
Introduction
Création et utilisation de bibliothèques de classes partagées en C sur Linux peut être une tâche difficile. Cet article fournit un guide complet qui couvre le processus de création et d'utilisation de bibliothèques de classes C partagées, y compris la création, la modification et la destruction d'objets.
Création d'une bibliothèque de classes C partagées
Pour créez une bibliothèque de classes C partagée, suivez ces étapes :
Utilisation d'une bibliothèque de classes C partagée
Pour utiliser une bibliothèque de classes C partagée qui a été créée, suivez ces étapes :
Exemple d'implémentation
Les extraits de code suivants démontrer une simple bibliothèque C partagée (myclass.h, myclass.cc) et un programme C (class_user.cc) qui utilise le bibliothèque :
maclasse.h :
class MyClass { public: MyClass(); virtual void DoSomething(); private: int x; };
maclasse.cc :
extern "C" MyClass* create_object() { return new MyClass; } extern "C" void destroy_object(MyClass* object) { delete object; } MyClass::MyClass() { x = 20; } void MyClass::DoSomething() { cout << x << endl; }
class_user .cc :
MyClass* (*create)(); void (*destroy)(MyClass*); create = (MyClass* (*)())dlsym(handle, "create_object"); destroy = (void (*)(MyClass*))dlsym(handle, "destroy_object"); MyClass* myClass = (MyClass*)create(); myClass->DoSomething(); destroy(myClass);
Compilation (Linux) :
g++ -fPIC -shared myclass.cc -o myclass.so g++ class_user.cc -ldl -o class_user
En suivant ces étapes, vous pouvez créer et utiliser avec succès des bibliothèques de classes C partagées dynamiques sous Linux.
Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!