博客首页 注册 建议与交流 排行榜 加入友情链接
推荐 投诉 搜索: 帮助

自己学习的记录

不要说你不会,只是你还没有努力罢了!
  ZhangQuan.cublog.cn

关于作者
姓名:张佺
性别:男
职业:暂时失业,做自己的东西
年龄:24
位置:北京
个性介绍:天塌下来也会笑
Email:net_robber@tom.com
|| << >> ||
我的分类


Linux下使用动态链接库
我要啦免费统计使用动态链接库,我认为,再比较大的程序运行过程中,是一种很有优势的。所以就花了一天时间来学习一下。

使用动态链接库,需要了解一下内容

头文件:
 <dlfcn.h>
函数:
void *dlopen(const char *filename, int flag);
const char *dlerror(void);
void *dlsym(void *handle, char *symbol);
int dlclose(void *handle);


相关的信息可以通过 man dlopen查询

在编译动生成态链接库的时候,
需要参数 -shared

在使用动态链接库的时候,
需要参数 -ldl

其他相关参数有
-fpic -fPIC  -rdynamic

如有库函数文件Lib.c, 主函数文件Main.c
则有如下Makefile

all: comple link

comple:
    gcc -c Lib.c -o Lib.o
    gcc -c Main.c -o Main.o

link:
    gcc -shared Lib.o -o Lib.so
    gcc -ldl Main.o -o Main


另外,在C++中使用动态连接库的时候,请注意:
必须用
extern "C"
{
}
将动态苦定义为C的编译连接方式

否则由于C++命名方式于C不同,会造成生成的动态链接库不能使用(无法定位或函数)

这里上传一个使用动态链接库的例子
文件:dynamic.tar.gz
大小:0KB
下载:下载

发表于: 2007-03-05,修改于: 2007-04-03 12:42,已浏览981次,有评论0条 推荐 投诉


网友评论
 发表评论