Linux、Windows、Android下查看可执行文件、动态库和静态库信息的命令

TL; DR

我常用的命令:

  • Linux
sh 复制代码
ldd
  • Windows(需要借助vs)
sh 复制代码
dumpbin /DEPENDENTS
  • Android
sh 复制代码
ldd +绝对路径

在不同的操作系统下,查看可执行文件、动态库和静态库的命令各不相同。以下是 Linux、Windows 和 Android 平台下的常用命令:

1. Linux

在 Linux 系统中,使用以下命令查看可执行文件、动态库和静态库的信息:

  • 查看可执行文件信息

    • file <filename>:查看文件类型,包括是否是可执行文件。
    • ldd <filename>:显示可执行文件或动态库所依赖的动态库。
    • readelf -h <filename>:查看 ELF 文件头信息,适用于 Linux 下的可执行文件和库。
    • objdump -x <filename>:显示可执行文件、动态库或静态库的详细信息。
    • nm <filename>:列出符号表信息(用于可执行文件和库)。
  • 查看动态库信息

    • ldconfig -p | grep <library_name>:列出系统中已加载的动态库,并过滤指定库名。
    • readelf -d <library_name>:显示动态库的动态段信息。
    • nm -D <library_name>:列出动态库中的导出符号。
  • 查看静态库信息

    • ar t <library_name.a>:列出静态库中的成员文件。
    • nm <library_name.a>:列出静态库中的符号表信息。

2. Windows

在 Windows 系统中,查看可执行文件和库信息通常通过命令提示符(cmd)或 PowerShell 来进行:

  • 查看可执行文件信息

    • dumpbin /HEADERS <filename>:显示可执行文件的头信息。
    • dumpbin /DEPENDENTS <filename>:显示可执行文件所依赖的 DLL 动态库。
    • sigcheck <filename>:用于查看可执行文件的签名和其他信息。
  • 查看动态库信息

    • dumpbin /EXPORTS <filename.dll>:列出 DLL 文件的导出符号。
    • depends.exe <filename>:使用 Dependency Walker 工具查看 DLL 的依赖关系(图形化工具)。
  • 查看静态库信息

    • dumpbin /SYMBOLS <library_name.lib>:列出静态库中的符号。

3. Android

Android 基于 Linux 内核,可以使用类似的命令。通常使用 Android 开发工具 (ADB) 或终端进行操作:

  • 查看可执行文件信息

    • file <filename>:查看文件类型。
    • readelf -h <filename>:查看 ELF 文件头信息。
    • objdump -x <filename>:显示详细信息。
  • 查看动态库信息

    • ldd <library_name>:查看动态库的依赖关系(注意:部分 Android 系统没有 ldd)。
    • readelf -d <library_name>:查看动态库的动态段。
    • nm -D <library_name>:列出动态库中的符号表。
  • 查看静态库信息

    • ar t <library_name.a>:列出静态库中的成员文件。
    • nm <library_name.a>:列出符号表。

对于 Android 系统,由于限制,很多命令需要在 rooted 环境或使用模拟器中执行,或者通过 ADB 来访问。

这些命令可以帮助你详细了解不同平台下的可执行文件、动态库和静态库的内容。

相关推荐
忧虑的乌龟蛋1 分钟前
嵌入式Linux I2C驱动开发详解
linux·驱动开发·嵌入式·iic·i2c·读数据·写数据
H309194 分钟前
vue3+dhtmlx-gantt实现甘特图展示
android·javascript·甘特图
像风一样自由5 分钟前
【001】renPy android端启动流程分析
android·gitee
I_Scholar43 分钟前
OPENSSL-1.1.1的使用及注意事项
linux·ssl
伐尘1 小时前
【Qt】编译 Qt 5.15.x For Windows 基础教程 Visual Studio 2019 MSVC142 x64
windows·qt·visual studio
Johny_Zhao1 小时前
K8S+nginx+MYSQL+TOMCAT高可用架构企业自建网站
linux·网络·mysql·nginx·网络安全·信息安全·tomcat·云计算·shell·yum源·系统运维·itsm
专注代码七年1 小时前
在Windows 境下,将Redis和Nginx注册为服务。
windows·redis·nginx
稳联技术1 小时前
Ethercat转Profinet网关如何用“协议翻译术“打通自动化产线任督二脉
linux·服务器·网络
烟雨迷1 小时前
Linux环境基础开发工具的使用(yum、vim、gcc、g++、gdb、make/Makefile)
linux·服务器·学习·编辑器·vim
千里马学框架2 小时前
重学安卓14/15自由窗口freeform企业实战bug-学员作业
android·framework·bug·systrace·安卓framework开发·安卓窗口系统·自由窗口