Linux 上的動態共享C 類別庫
簡介
在C 上建立和使用共享類別庫Linux 可能是一項具有挑戰性的任務。本文提供了一個全面的指南,涵蓋了建立和使用共享 C 類別庫的過程,包括物件建立、修改和銷毀。
建立共用C 類別庫
到建立共用C 類別庫,請依照下列步驟操作:
使用共享C 類別庫
使用已共享的C 類別庫建立完成後,請按照以下步驟操作:
範例實作
以下程式碼片段示範了一個簡單的共用C 函式庫(myclass.h、myclass.cc)和一個 C程式(class_user.cc)它利用了函式庫:
myclass.h:
class MyClass { public: MyClass(); virtual void DoSomething(); private: int x; };
myclass.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);
編譯(Linux):
g++ -fPIC -shared myclass.cc -o myclass.so g++ class_user.cc -ldl -o class_user
以上是如何在 Linux 上建立和使用動態共用 C 類別庫?的詳細內容。更多資訊請關注PHP中文網其他相關文章!