linux - 确定elf文件是可执行文件还是库
问题描述
我有以下问题:我有一个 elf 文件,我想知道该 elf 文件是否可以作为独立的可执行文件运行。因此,对于共享库(例如.so
文件),我希望将其False
作为结果,而对于准备运行的二进制文件,我希望True
将其作为输出。我试图利用file
来实现这一点,但显然给出的信息是不够的。考虑
file /usr/bin/sudo
/usr/bin/sudo: setuid ELF 64-bit LSB shared object, x86-64, version 1 (SYSV), dynamically linked, interpreter /lib64/ld-linux-x86-64.so.2, for GNU/Linux 2.6.32, BuildID[sha1]=3e4fbfd5a73126630bcc22d5dee68c32e2813566, stripped
我实际上期望输出为ELF 64-bit LSB executable
,例如gcc
编译器:
file /usr/bin/gcc-5
/usr/bin/gcc-5: ELF 64-bit LSB executable, x86-64, version 1 (SYSV), dynamically linked, interpreter /lib64/ld-linux-x86-64.so.2, for GNU/Linux 2.6.32, BuildID[sha1]=b3417f0bc306e9b0afe35e778b5e4702f2d22b26, stripped
我在这里缺少什么,还有其他方法可以实现我的目标吗?
解决方案
推荐阅读
- mysql - sum 函数返回错误的值
- azure-devops - 有没有办法使用证书运行此 Azure Key Vault 任务(在 Azure DevOps 中)?
- php - 如何在 FullCalendar v4 中使用时间数据类型从数据库中获取事件
- maven - Maven / Tycho 构建失败,需要 'osgi.ee; (&(osgi.ee=JavaSE)(版本=1.8))'
- c# - 验证视图模型是否仅通过流式 API 在 api 中传递一次
- javascript - 字符串排列时的递归问题
- karate - 如何将 JSON 值与空手道中的响应值匹配
- python - 从 Python 中的图像键获取 URL
- android - Recyclerview 全屏显示每个项目
- iteration - “迭代”这个词的正确用法?