取消 ld.conf.so.d 库路径解析的优先级

Clo*_*oud 5 linux libraries linker dynamic-linking ld

从一个单独的问题有关该主题的其他文章来看,在通过或提供的任何库之前,似乎总是会解析 定义的附加库路径ld.so.conf.d(即在名称冲突的情况下,例如覆盖系统库时)。/lib/usr/lib

是否可以通过ld.so.conf.d或某种其他机制创建一个可以解析库的系统范围路径,但以最低/最新的可能分辨率级别?例如,我希望/ParanoidAndroid/解析 中 的库,但我希望该路径成为搜索它们的最后一个位置(即优先考虑 中 中的库/lib以及/usr/lib存储在 中的库/ParanoidAndroid/),因此现在的查找顺序是:

  1. LD_LIBRARY_PATH 中的目录;
  2. /etc/ld.so.conf 中的目录;
  3. /lib;
  4. /usr/lib。
  5. /偏执Android;

fil*_*den 3

您可以显式列出/lib和中的文件之一,这样这两个文件之后的目录在搜索中将具有较低的优先级。/usr/lib/etc/ld.so.conf/etc/ld.so.conf.d

像这样的东西:

# contents of /etc/ld.so.conf
/lib
/usr/lib
/ParanoidAndroid
Run Code Online (Sandbox Code Playgroud)

不要忘记:

$ sudo ldconfig
Run Code Online (Sandbox Code Playgroud)

您可以通过以下方式检查:

$ ldconfig -v
Run Code Online (Sandbox Code Playgroud)

然后确认下面的库/ParanoidAndroid位于最后。

(您可能会看到诸如 之类的警告ldconfig: Path '/lib' given more than once,但这可能正是您所期望的,对吧?)