这不是重复的,因为这处理的是我在使用时注意到的特殊性/etc/ld.so.conf。
要获取动态链接程序在库中搜索的路径,请运行命令ldconfig -v | grep -v "^"$'\t' | sed "s/:$//g"。何时/etc/ld.so.conf未列出任何路径。上一条命令的输出是
/lib
/usr/lib
我认为它/lib首先搜索,然后搜索/usr/lib。当添加新的路径,例如/usr/local/lib,对/etc/ld.so.conf再重拍/etc/ld.so.cache时,输出从ldconfig -v | grep -v "^"$'\t' | sed "s/:$//g"变
/usr/local/lib
/lib
/usr/lib
我觉得这很奇怪,因为如果我正确地搜索列出的目录的顺序是从上到下,那么在/lib和之前会搜索其他目录/usr/lib。在受信任目录之前搜索附加目录并不奇怪,但是在/lib之前搜索时/usr/lib,这很奇怪,因为/bin&/sbin在/usr/bin&/usr/sbinin 之后搜索PATH。
即使被列出的路径ldconfig -v | grep -Ev "^"$'\t' | sed "s/:$//g"是从底部寻找到顶部,它仍然是一个扭曲的排序,因为额外的目录会在受信任的人后,而被搜索/lib会后进行搜索/usr/lib。
那么,ld.so搜索库路径的顺序是什么?为什么/lib以前被搜索/usr/lib?如果不是,那么为什么还要搜索其他目录/lib?