动态加载程序如何使用正确的 arch 版本加载库
How does the dynamic loader load libs with correct arch version
对于基于 aarch64 的系统,如果我在不同的路径中提供 arm 和 arm64 版本的库 libtest.so,并将路径添加到 /etc/ld.so.conf.
我想知道如果一个应用程序依赖这个库,加载程序如何找到正确的版本libtest.so?
基本上,由于 ld.so.cache 中存在两个路径,所以加载器是否会根据应用程序的架构进行选择?
或者在 ld.so.conf 中为不同的拱门添加路径时是否需要任何规则?
我想知道它是如何工作的,非常感谢您提供任何信息。
我只是在系统上测试它,ldconfig -p
输出两个库但指向不同的地方,然后 ld 将使用与目标的 arch 匹配的一个库。
所以 ld 将通过 arch 匹配 lib,对吗?
如有不妥请指正
对于基于 aarch64 的系统,如果我在不同的路径中提供 arm 和 arm64 版本的库 libtest.so,并将路径添加到 /etc/ld.so.conf.
我想知道如果一个应用程序依赖这个库,加载程序如何找到正确的版本libtest.so?
基本上,由于 ld.so.cache 中存在两个路径,所以加载器是否会根据应用程序的架构进行选择? 或者在 ld.so.conf 中为不同的拱门添加路径时是否需要任何规则?
我想知道它是如何工作的,非常感谢您提供任何信息。
我只是在系统上测试它,ldconfig -p
输出两个库但指向不同的地方,然后 ld 将使用与目标的 arch 匹配的一个库。
所以 ld 将通过 arch 匹配 lib,对吗?
如有不妥请指正