来自一个单独的问题, 和别的有关该主题的文章,似乎总是ld.so.conf.d
会解析由 定义的其他库路径(即在名称冲突的情况下,例如覆盖系统库时),前/lib
通过或提供的任何库/usr/lib
。
是否可以通过ld.so.conf.d
或某种其他机制创建一个可以解析库的系统范围路径,但以最低/最新的可能分辨率级别?例如,我希望/ParanoidAndroid/
解析 中 的库,但我希望该路径成为搜索它们的最后一个位置(即优先考虑 中 中的库/lib
以及/usr/lib
存储在 中的库/ParanoidAndroid/
),因此现在的查找顺序是:
- LD_LIBRARY_PATH 中的目录;
- /etc/ld.so.conf 中的目录;
- /lib;
- /usr/lib。
- /偏执Android;
答案1
您可以显式列出/lib
和中的文件之一,这样这两个文件之后的目录在搜索中将具有较低的优先级。/usr/lib
/etc/ld.so.conf
/etc/ld.so.conf.d
像这样的东西:
# contents of /etc/ld.so.conf
/lib
/usr/lib
/ParanoidAndroid
不要忘记:
$ sudo ldconfig
您可以通过以下方式检查:
$ ldconfig -v
然后确认下面的库/ParanoidAndroid
位于最后。
(您可能会看到诸如 之类的警告ldconfig: Path '/lib' given more than once
,但这可能正是您所期望的,对吧?)