在C++中正確卸載dlopen加載的庫,通常需要調用dlclose函數。具體步驟如下:
void* handle = dlopen("libexample.so", RTLD_LAZY);
dlclose(handle);
盡量避免在使用庫的函數或對象被釋放之前關閉庫,以免出現未定義行為。最好在程序退出前關閉庫。
如果需要確保在程序退出時關閉加載的庫,可以使用atexit函數注冊一個關閉庫的函數:
void cleanup() {
dlclose(handle);
}
atexit(cleanup);
通過以上步驟,可以正確卸載使用dlopen加載的庫,保證程序正常運行。