如果从 dlopen 的库中调用 dlopen() 是否存在负载泄漏?

Is there a load leak if dlopen() is called from a dlopen'd library?

如果我的可执行文件调用 dlopen 来加载一个库但忽略了调用 dlclose,该库将保持加载状态直到进程退出并且 OS 强制它卸载。

如果我加载 a.so 加载 b.so,然后在 a.so 上调用 dlclose,OS 是否也卸载 b.so

这与使用 Microsoft 等效方案的类似方案相比如何LoadLibraryEx

应用程序只需要担心应用程序加载的内容直接。如果你加载 a.so,你只需要关心卸载 a.so

如果a.so拒绝卸载b.so,那是a.so的问题,您的应用对此概不负责。 a.so 的作者需要齐心协力,解决他们图书馆的问题。