在C++中正确卸载dlopen加载的库,通常需要调用dlclose函数。具体步骤如下:
void* handle = dlopen("libexample.so", RTLD_LAZY);
dlclose(handle);
尽量避免在使用库的函数或对象被释放之前关闭库,以免出现未定义行为。最好在程序退出前关闭库。
如果需要确保在程序退出时关闭加载的库,可以使用atexit函数注册一个关闭库的函数:
void cleanup() {
dlclose(handle);
}
atexit(cleanup);
通过以上步骤,可以正确卸载使用dlopen加载的库,保证程序正常运行。