如果我的可执行文件调用dlopen
来加载库但忽略调用dlclose
,则库将保持加载状态,直到进程退出并且操作系统强制它卸载。
如果我加载加载a.so
的{{1}},然后在b.so
上调用dlclose
,操作系统是否也会卸载a.so
?
这与使用Microsoft等效的LoadLibraryEx
?
答案 0 :(得分:3)
应用程序只需要担心应用程序直接加载 。如果您加载a.so
,则需要关注的是卸载a.so
。
如果a.so
拒绝卸载b.so
,这是a.so
的问题,您的应用不对此负责。 a.so
的作者需要一起行动,并解决他们的图书馆的问题。