![Linux 机器上的二进制文件默认在 /lib 中查找库](https://linux22.com/image/1414416/Linux%20%E6%9C%BA%E5%99%A8%E4%B8%8A%E7%9A%84%E4%BA%8C%E8%BF%9B%E5%88%B6%E6%96%87%E4%BB%B6%E9%BB%98%E8%AE%A4%E5%9C%A8%20%2Flib%20%E4%B8%AD%E6%9F%A5%E6%89%BE%E5%BA%93.png)
在我的 UNIX 机器上,我观察到二进制文件默认在“ ”目录中寻找依赖的共享库,/lib
即使“/lib”目录未在“ PATH
”和“ LD_LIBRARY_PATH
”变量中配置。
libssl.so.4
我在下面看到在“ ”目录中找到了库“ ” /lib
。
bash-3.00$ ldd openssl
/lib/libcwait.so (0x00f86000)
libssl.so.4 => /lib/libssl.so.4 (0x00408000)
我的“PATH”和“LD_LIBRARY_PATH”如下:
bash-3.00$ echo $LD_LIBRARY_PATH
:/opt/oracle/product/11.2.0/client32/lib:
bash-3.00$ echo $PATH
/opt/pure/releases/purify.hp.2003a.06.15.FixPack.0214/cache/opt/star-ncf-prod/ep_patch/usr/lib:/usr/ccs/bin:/usr/bin:/usr/ucb:/etc:/bin:.:/opt/ccm71/bin:/opt/oracle/product/11.2.0/client32/bin:/opt/tools/bin:/usr/local/bin
请让 mw 知道二进制文件是否默认引用“/lib”目录?
答案1
库(在 Linux 操作系统上)正在从(而不是从 $PATH)的路径中搜索/etc/ld.so.conf
。更改此文件后,您必须运行:
sudo ldconfig
可以通过命令查看库搜索路径:
ld --verbose | grep SEARCH_DIR | tr -s ' ;' \\012
默认路径:在默认路径中/lib
,然后/usr/lib
。Linux 加载器及其如何查找库。