dlsym用法
1. 包含頭文件 #include<dlfcn.h>
2. 函數(shù)定義 void *dlsym(void *handle, const char* symbol);
handle是使用dlopen函數(shù)之后返回的句柄,symbol是要求獲取的函數(shù)的名稱,函數(shù),返回值是void*,指向函數(shù)的地址,供調(diào)用使用
dlsym與dlopen的以如下例子解釋:
#include<dlfcn.h>
void * handle = dlopen("./testListDB.so",RTLD_LAZY);
如果createListDB函數(shù)定義為int32_tcreateListDB(std::string);
那么dlsym的用法則為:int32_t (*create_listDB)(std::string) = reinterpret_cast<int32_t (*)(std::string)>(dlsym(handle, "createListDB"))
createListDB庫函數(shù)的定義要用extern來聲明,這樣在主函數(shù)中才能通過createListDB來查找函數(shù),
總結(jié)