在我的 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 加载器及其如何查找库。