目录
结论先说
一、为什么不通用
二、Linux 替代 Depends 的工具(对应不同场景)
1. ldd(最常用,等价 Depends 依赖树)
2. readelf -d(纯静态解析,安全无执行)
3. lddtree(树形可视化,最接近 Depends 树视图)
4. objdump(查看导入导出符号)
5. 图形化替代(Linux 可视化,类似 Depends 界面)
三、补充:网上少数 “跨平台 depends-x86” 说明
快速对照表
ldd的使用
完整的库
加上这句代码(想想为什么就可以了)
readelf 的使用
结论先说
原版 Depends(Dependency Walker /depends.exe)不能查看 Linux 的可执行文件、.so 库,二者文件格式完全不兼容:
- Depends 只解析Windows PE 格式:
.exe/.dll/.sys - Linux 程序是ELF 格式:可执行文件、
.so动态库,Depends 打开会直接识别失败、报错无法解析模块Dependency...
一、为什么不通用
- 文件结构完全不同
- Windows:PE(Portable Executable),存导入 DLL、DLL 导出函数
- Linux:ELF,存依赖
.so、DT_NEEDED 动态段、GOT/PLT 符号表
- Depends 运行环境仅限 Windows,本身是 exe,无法在 Linux 原生运行;就算用 Wine 跑,也读不懂 ELF 文件头。
二、Linux 替代 Depends 的工具(对应不同场景)
1. ldd(最常用,等价 Depends 依赖树)
模拟动态链接器,输出完整依赖链 + 系统路径,直接看缺哪些 so
bash
运行
ldd ./your_program ldd libxxx.so缺点:不信任的二进制不要用 ldd,会加载程序片段有安全风险。
2. readelf -d(纯静态解析,安全无执行)
只读取 ELF 文件头,列出直接依赖的 so 名称,不模拟加载
bash
运行