【发布时间】:2014-03-19 12:28:24
【问题描述】:
我已经解决了关于 SO 的其他问题,但没有运气,例如:
C++: dlclose doesn't unload the shared library
我遇到了两个共享对象(不幸的是我无法公开代码)。
让我们说
liba.so 和 libb.so
liba.so 隐式链接 libb.so。
并且应用程序使用 dlopen() 和 RTLD_LAZY 标志显式链接 liba.so。
一切正常,除了dlclose() 没有卸载liba.so,尽管它成功返回。 lsof 命令显示 liba.so 和 libb.so 已加载。
正如上述问题的答案所暗示的,dlclose() 只会减少引用计数。但由于没有其他东西在使用这些库,我希望 dlclose() 能够真正卸载它。
我已经用不同的应用程序尝试了这两个相同的问题。所以我想问题出在图书馆里。
有人可以就可能的原因提出建议。
【问题讨论】:
标签: dynamic-linking shared-libraries