
使用动态链接库,我认为,再比较大的程序运行过程中,是一种很有优势的。所以就花了一天时间来学习一下。
使用动态链接库,需要了解一下内容
头文件:
<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 linkcomple: gcc -c Lib.c -o Lib.o gcc -c Main.c -o Main.olink: gcc -shared Lib.o -o Lib.so gcc -ldl Main.o -o Main另外,在C++中使用动态连接库的时候,请注意:
必须用
extern "C"{}将动态苦定义为C的编译连接方式
否则由于C++命名方式于C不同,会造成生成的动态链接库不能使用(无法定位或函数)
这里上传一个使用动态链接库的例子
 |
| 文件: | dynamic.tar.gz |
| 大小: | 0KB |
| 下载: | 下载 |
|