3

当路径不存在时运行 ldd 命令时,我得到“找不到文件”而不是路径。bash-3.2$ ldd curl libcurl.so.4 => /usr/local/lib/libcurl.so.4 libldap.so.5 => /usr/lib/libldap.so.5 librt.so.1 => / lib/librt.so.1 libssl.so.1.0.0 =>(未找到文件) libcrypto.so.1.0.0 =>(未找到文件)

有没有一个选项可以查看找不到哪个文件?完整路径?

4

1 回答 1

3

ldd 正在/etc/ld.so.conf 中提到的库搜索路径中进行搜索。或者它可能使用环境变量 LD_LIBRARY_PATH。据我所见,它至少在 /usr/local/lib、/usr/lib 和 /lib 中显示,这是大多数系统的默认设置。在这三个位置找不到 libssl.so.1.0.0。这就是您收到“找不到文件”消息的原因。

一个原因可能是您没有安装 libssl.so.1.0.0。也许其他版本。

另一个原因可能是它安装在其他地方。需要加载共享库的应用程序要么具有硬编码的路径,要么正在使用 LD_LIBRARY_PATH。

无论如何,要回答您的问题:ldd 找不到 libssl.so.1.0.0 的完整路径,这就是您收到错误的原因。

要找到它,您必须手动搜索它。一种简单的方法是

find / -ls | grep libssl.so

或更好(如果您只想搜索系统磁盘)

find / -mount -ls | grep libssl.so

这可能会导致在多个位置安装了很多版本。

于 2014-05-29T13:33:34.287 回答