用 `ldd` 检查二进制文件的共享库依赖
遇到「error while loading shared libraries: libX.so.1: cannot open」时该用的命令——ldd 列出每个所需的 .so 及其解析情况。
运行 `ldd /path/to/binary` 列出共享库依赖;凡是显示 `not found` 的行就是缺失的库,需要安装或随程序一起分发。
01命令
命令
$ ldd /usr/bin/some-binary02作用说明
输出的每一行把所需库(如 libssl.so.3)映射到解析出的路径;「not found」表示动态链接器找不到它,解决办法是安装对应软件包,或用 `LD_LIBRARY_PATH` 扩展搜索路径。手册中容易被忽略的安全提示很重要:ldd 的实现会运行程序的加载器,因此不要对不受信任的二进制使用——改用 `objdump -p 二进制 | grep NEEDED`。相关而易忘的还有:`ldconfig -p` 可列出系统缓存里已知的全部库。
03风险
!注意: 绝不要对不受信任的可执行文件运行 ldd——它可能执行来自该文件加载器的任意代码。
04撤销
✓无需撤销——该命令不会改变持久状态。
05来源
- ldd(1) — print shared object dependencies依据: Documents ldd output and its security note: ldd executes the binary's loader and should not be run on untrusted executables
最后验证: 2026-09-17 · 分类: 开发者