dlclose没有在gcc,linux上卸载嵌套共享库

时间:2014-03-19 12:28:24

标签: dynamic-linking shared-libraries

我在SO上遇到了其他问题而没有运气,例如:
C++: dlclose doesn't unload the shared library

我遇到过两个共享对象(遗憾的是我无法公开代码) 我们说吧

liba.solibb.so

liba.so隐式链接libb.so
并且应用程序使用liba.sodlopen()标志明确链接RTLD_LAZY

一切正常,但dlclose()没有卸载liba.so,尽管它成功返回。 lsof命令在加载时显示liba.solibb.so

正如上述问题的答案所示,dlclose()只会减少引用计数。但由于没有其他人使用这些库,我希望dlclose()能够实际卸载它。

我已经尝试过这两个问题,因为不同的应用程序有同样的问题。所以我猜这个问题在图书馆内。

有人可以就可能的原因提出建议。

1 个答案:

答案 0 :(得分:0)

嗯......最后似乎找到了问题。

这是OpenSUSE中的一个错误。

这是链接: https://bugzilla.novell.com/show_bug.cgi?id=680125

代码在OpenSUSE 12.1上运行,错误已在OpenSUSE 12.2中解决。