- android - 多次调用 OnPrimaryClipChangedListener
- android - 无法更新 RecyclerView 中的 TextView 字段
- android.database.CursorIndexOutOfBoundsException : Index 0 requested, 光标大小为 0
- android - 使用 AppCompat 时,我们是否需要明确指定其 UI 组件(Spinner、EditText)颜色
我有一个名为 abc.so 的 .so 文件如果我输入:
ldd abc.so
libssl.so.10 => /usr/lib64/libssl.so.10 (0x00007f76f9100000)
如果我输入:
ls -l /usr/lib64/libssl.so.10
/usr/lib64/libssl.so.10 -> libssl.so.1.0.1e
为什么它链接到 libssl.so.10 而不是 libssl.so ?当我更新 openssl rpm 时,我注意到:
/usr/lib64/libssl.so.10
仍然存在,但是否有过更新 rpm 会使用类似 libssl.so.11 的情况,在这种情况下,abc.so 中使用的动态链接文件会过时吗?
此外,如果我有 def.so 其中包含:
/usr/lib/libssl.a(libssl64.so.0.9.8)
因为它是静态链接的,这是否意味着无论 libssl.a 是什么版本,因为它是静态链接的,它总是使用 libssl64.so.0.9.8 ?
最佳答案
Why is it linking to libssl.so.10 instead of libssl.so ?
在 linux 上,允许多个同名的 DSO,因此您可以(如您所说)libssl.so.11
和/或 libssl.so.9
与 libssl.so.10
一起安装。 ldd
只是告诉您 abc.so
链接到 libssl.so.10
。这些版本号的更改通常表示向后不兼容,而不是简单的错误修复。
is there ever a case that updating an rpm would use something like libssl.so.11 in which case the dynamically linked file used in abc.so would be out of date?
这是可能的,因为再次允许多个库。但是,我希望发行版维护者永远不会在更新中引入向后不兼容的库。
Also, if I have def.so which contains: /usr/lib/libssl.a(libssl64.so.0.9.8)
我不知道你那里有什么。看起来它向我引用了一个共享库。
关于linux - 在 .so 文件中更新动态链接的 .so 文件和在 .so 文件中更新静态链接的 .a 文件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/23368080/
我是一名优秀的程序员,十分优秀!