Linux提供了一套API来动态装载库。下面列出了这些API:
- dlopen,打开一个库,并为使用该库做些准备。
- dlsym,在打开的库中查找符号的值。
- dlclose,关闭库。
- dlerror,返回一个描述最后一次调用dlopen、dlsym,或dlclose的错误信息的字符串。
通过dlopen动态的打开动态库,动态库加载完成后,返回一个句柄,然后把句柄传给dlsym定位到你需要执行的函数指针,函数指针拿到了,就可以使用这个函数了。
dlopen :open a dynamically linked library
dlsym : get the address of a symbol in a dynamically linked library
使用方法:
void* dvm_handle = dlopen("libdvm.so", RTLD_NOW);
char *name;//你想拿到的函数名称,或者变量名
void* ret = dlsym(dvm_handle, name);ret就是函数的指针
参考自:http://tldp.org/HOWTO/Program-Library-HOWTO/dl-libraries.html