linux动态链接库的创建和使用
来源:互联网 发布:景区票务软件 编辑:程序博客网 时间:2024/06/05 06:25
1、准备2个源程序/add.c/
intadd(inta,intb){
returna+b;}
/sub.c/
intsub(inta,intb){
returna-b;}
2、创建共享库
gcc -c -fPIC sub.c gcc -c -fPIC add.c
gcc -shared -fPIC -o libouyang.so sub.o add.o
3、动态加载动态库
所谓动态加载,就是程序自己在运行中,自己加载某个动态库。使用dlopen()打开动态库,dlclose()关闭动态库代码实现如下:
/*main.c*/#include<stdio.h>#include<stdlib.h>#include<dlfcn.h>/*dlopen()等动态库使用函数在dlfcn.h中定义*/int main(void){ int a=30;int b=20; /*动态库句柄*/ void*handle_dll=NULL; /*函数指针*/ int(*dl_add)(int,int); int(*dl_sub)(int,int); /*打开某个动态库,注意检查打开是否成功*/ handle_dll=dlopen("libouyang.so",RTLD_LAZY); if(handle_dll==NULL){ printf("libouyang.sonotfound!\n");exit(0);} /*查找符号表,完整的做法也应该检查符号表查找是否成功*/ dl_add=dlsym(handle_dll,"add"); dl_add=dlsym(handle_dll,"sub"); /*查找符号表成功,可以正常使用动态库中的函数*/ printf("%d+%d=%d\n",a,b,dl_add(a,b)); printf("%d-%d=%d\n",a,b,dl_sub(a,b)); /*关闭动态库*/ dlclose(handle_dll); handle_dll=NULL; return 0;}
0 0
- linux 动态链接库的创建和使用--动态连接
- linux 动态链接库的创建和使用--动态连接
- linux 动态链接的创建和使用
- linux的动态链接库的创建和使用
- Linux静态/动态链接库的创建和使用
- Linux静态/动态链接库的创建和使用
- Linux静态/动态链接库的创建和使用
- Linux静态/动态链接库的创建和使用
- Linux静态/动态链接库的创建和使用
- Linux静态/动态链接库的创建和使用
- Linux静态/动态链接库的创建和使用
- Linux静态/动态链接库的创建和使用
- Linux静态/动态链接库的创建和使用
- Linux静态/动态链接库的创建和使用
- Linux静态/动态链接库的创建和使用
- Linux静态/动态链接库的创建和使用
- Linux静态/动态链接库的创建和使用
- Linux静态/动态链接库的创建和使用
- ActiveX控件(ATL篇)
- ubuntu 下pip的卸载,安装,更新与使用
- Android ImageView
- 解析 STM32 的启动过程
- Java基础 - 哈夫曼编码
- linux动态链接库的创建和使用
- C#实现二叉查找树
- 辗转相除法
- decode ways
- python中的函数定义问题
- Android四大组件——BroadcastReceiver普通广播、有序广播、拦截广播、本地广播、Sticky广播、系统广播
- 第一篇
- 6. ZigZag Conversion
- CF 740 A. Alyona and copybooks