社区
Linux/Unix社区
帖子详情
linux下 .so如何导出类?
linyaoxin
2007-08-22 11:26:12
我在linux 下建了一个编译出一个.so共享库文件,我想导出.so中的类,并使用类中的方法,要怎么做。我想要显式连接的那种静态链接我测试过了,可以用。但是显式链接不会做,各位能不能帮小弟下
...全文
1070
7
打赏
收藏
linux下 .so如何导出类?
我在linux 下建了一个编译出一个.so共享库文件,我想导出.so中的类,并使用类中的方法,要怎么做。我想要显式连接的那种静态链接我测试过了,可以用。但是显式链接不会做,各位能不能帮小弟下
复制链接
扫一扫
分享
转发到动态
举报
写回复
配置赞助广告
用AI写文章
7 条
回复
切换为时间正序
请发表友善的回复…
发表回复
打赏红包
linyaoxin
2007-08-22
打赏
举报
回复
我是想不加头文件动态加载里面导出的类,结果不会弄.越弄越坏
linyaoxin
2007-08-22
打赏
举报
回复
g++ -g -o main main.cpp -ldl
这个链接选项编译的
hzcpig
2007-08-22
打赏
举报
回复
有没有链接so库?链接选项对不对?
linyaoxin
2007-08-22
打赏
举报
回复
怎么能直接声明呢, 编译提示说我没声明
我直接声明 这样写 TblDataStore Tbl; 结果出错
main.cpp:20: 错误:‘TblDataStore’ 在此作用域中尚未声明
main.cpp:20: 错误:expected `;' before ‘Tbl’
main.cpp:21: 错误:‘Tbl’ 在此作用域中尚未声明
hzcpig
2007-08-22
打赏
举报
回复
动态的使用和静态差不多阿,也是直接申明就可以了
linyaoxin
2007-08-22
打赏
举报
回复
不是我不会写怎么导出类啊.
#include <stdio.h>
#include <iostream>
#include <dlfcn.h>
using namespace std;
int main(void)
{
void *handle=NULL;
string (*pQueryAll)();
handle=dlopen("./db.so",RTLD_NOW);
if(handle==NULL)
{
cout<<"failed loading library!"<<endl;
return -1;
}
下面我要怎么写呢. 我想用到.so里的一个叫Tblstore类,因为里面有好多方法
要怎么写啊, 静态的话直接声明这个类就行了.这里不知道怎么写
return 0;
}
tb01412
2007-08-22
打赏
举报
回复
静态链接都通过了,动态库一样的用啊,使用方法是一样的,只不过在编译链接参数上略有区别而已
Linux
查看动态库.so
导出
函数列表
有两种方式:1.使用objdump命令。例如:objdump -tT xxx.so2.使用nm命令(个人觉得使用nm方式查看更方便。)例如 nm -D xxx.so(-D或-dynamic选项表示:显示动态符号。该选项仅对于动态库有意义)得到的结果中以T开头的就是
导出
函数实例:自己生成一个只包含test_b函数的动态库libtest.so使用awk命令筛选出第二列为-T的行...
linux
导出
类
隐式链接,动态库(.so)隐藏函数名
一、偶遇 error: undefined reference to xxx 问题尝试封装通用的接口到一个private.so,然后供客户端使用,private.so编译出来后由sample.cpp依赖调用其中封装的接口,但是一直报error: undefined reference to xxx的错误,并且检查so、头文件都依赖正确,c方式编译的函数也用extern "C" 声明。#ifde...
linux
ld.so.conf,/etc/ld.so.conf详解
Linux
系统上有两
类
根本不同的
Linux
可执行程序。第一
类
是静态链接的可执行程序。静态可执行程序包含执行所需的所有函数 — 换句话说,它们是“完整的”。因为这一原因,静态可执行程序不依赖任何外部库就可以运行。第二
类
是动态链接的可执行程序。静态可执行程序与动态可执行程序比较我们可以用 ldd 命令来确定某一特定可执行程序是否为静态链接的:# ldd /sbin/slnnot a dynami...
关于
Linux
下.so的介绍和编写过程
Linux
下的.so是基于
Linux
下的动态链接,其功能和作用
类
似与windows下.dll文件。 下面是关于.so的介绍: 一、引言通常情况下,对函数库的链接是放在编译时期(compile time)完成的。所有相关的对象文件(object file)与牵涉到的函数库(library)被链接合成一个可执行文件(executable file)。程序在运行时,与函数
Linux
下.so的编写,编译和运行
Linux
下的.so是基于
Linux
下的动态链接,其功能和作用
类
似与windows下.dll文件。 1 下面是关于.so的介绍: 一、引言 通常情况下,对函数库的链接是放在编译时期(compile time)完成的。所有相关的对象文件(object file)与牵涉到的函数库(library)被链接合成一个可执行文件(executable file)。程序在运行时,与函数库再无瓜
Linux/Unix社区
23,223
社区成员
74,537
社区内容
发帖
与我相关
我的任务
Linux/Unix社区
Linux/Unix社区 应用程序开发区
复制链接
扫一扫
分享
社区描述
Linux/Unix社区 应用程序开发区
社区管理员
加入社区
获取链接或二维码
近7日
近30日
至今
加载中
查看更多榜单
社区公告
暂无公告
试试用AI创作助手写篇文章吧
+ 用AI写文章