阅读量:79
在C++中使用dlopen动态加载库需要包含头文件
#include
#include
int main() {
void* handle = dlopen("libexample.so", RTLD_LAZY);
if (!handle) {
std::cerr << "Error loading library: " << dlerror() << std class="hljs-keyword">return 1;
}
// 获取库中的函数指针
void (*func)() = (void (*)())dlsym(handle, "exampleFunction");
if (!func) {
std::cerr << "Error finding function: " << dlerror() << std class="hljs-keyword">return 1;
}
// 调用函数
func();
// 关闭库
dlclose(handle);
return 0;
}
在上面的代码中,我们使用dlopen函数打开名为libexample.so的库文件,并使用dlsym函数获取库中的函数指针。最后调用该函数并使用dlclose函数关闭库。
需要注意的是,dlopen函数加载库文件时需要指定库文件的路径,并且在使用dlsym获取函数指针时需要指定函数名。