【问题标题】:dlclose not unloading nested shared library on gcc, linuxdlclose 不卸载 gcc,linux 上的嵌套共享库
【发布时间】:2014-03-19 12:28:24
【问题描述】:

我已经解决了关于 SO 的其他问题,但没有运气,例如:
C++: dlclose doesn't unload the shared library

我遇到了两个共享对象(不幸的是我无法公开代码)。
让我们说

liba.solibb.so

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

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

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

我已经用不同的应用程序尝试了这两个相同的问题。所以我想问题出在图书馆里。

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

【问题讨论】:

    标签: dynamic-linking shared-libraries


    【解决方案1】:

    嗯……总算找到问题了。

    这是 OpenSUSE 中的一个错误。

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

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

    【讨论】:

    • 以某种方式镜像链接的任何更改?进入此页面时出现“无权限”错误(是的,我知道那是 7 年前的事了,但我仍然想查看该页面)
    猜你喜欢
    • 2012-02-06
    • 1970-01-01
    • 2019-02-10
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多