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 类库。
以上是如何在 Linux 上创建和使用动态共享 C 类库?的详细内容。更多信息请关注PHP中文网其他相关文章!