Linux 可以在程序运行时加载动态库,具体操作如下:
程序需要包含头文件#include<dlfcn.h>
该头文件包含dlopen(), dlerror(), dldlsym() ,dlclose()函数API 用于加载动态函数库的相关操作。
#include <dlfcn.h>
void *dlopen(const char *filename, int flag);
char *dlerror(void);
void *dlsym(void *handle, const char *symbol);
int dlclose(void *handle);
Link with -ldl.
函数作用解析:
void *dlopen(const char *filename,int flag)
用于打开连接动态函数库
filename :是动态链接库的名称;
flag:打开方式,一般为RTLD_LASY
返回值:为动态库的指针
void*dlerror(void)
用于返回出错信息,当返回为NULL 时表示执行成功。
void*dlsym(void *handle,const*symbol)
用于获得动态库的函数地址:
handle:是dlopen()执行后返回的句柄指针
symbol:是要调用库的函数名称。
返回值;为函数指针
int dlclose(void *handle)
用于关闭加载动态库
handle:为dlopen返回的句柄。
demo 历程包含文件如下