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