LinuxSir.cn,穿越时空的Linuxsir!

 找回密码
 注册
搜索
热搜: shell linux mysql
查看: 658|回复: 1

请问能把类封装在so动态库里面吗?怎么创建和调用呢?

[复制链接]
发表于 2007-3-19 11:22:09 | 显示全部楼层 |阅读模式
请问能把类封装在so动态库里面吗?怎么创建和调用呢?
发表于 2007-3-20 12:51:49 | 显示全部楼层
可以的
先产生目标文件: gcc -c -fPIC filename.c
然后产生共享库:gcc -shared -Wl,-soname,libfilename.so -o libfilename.so filename.o
调用用dlopen,dlsym函数
-Wl后面的参数-soname,libfilename.so是传给ld的,这个是必需的,要不然用dlopen打开就会出错。
C++类的调用找一下精华区吧,我记得有一篇文章是mini howto的,里面给了个例子。
貌似如下:
class A
{
};
A * create()
{
   A  *pA=new A;
   return pA;
}

void destroy(A *pA)
{
    delete pA;
}
在程序里调用create和destroy就行了。
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 注册

本版积分规则

快速回复 返回顶部 返回列表