linux - 在 LINUX 中确定 .a 库/存档是 32 位还是 64 位?

我们在 Linux 中分发 64 位和 32 位版本的静态库。在对客户进行故障排除时,我希望我的诊断 shell 脚本通过检查 .a 存档文件以确定它是 32 位还是 64 位来快速消除问题。我想到的方法不够优雅:

  1. 提取一个 .o 成员并询问"file"命令(例如,ELF 32 位等)

  2. 开始包含一个虚拟成员,该成员被编码以指示,例如32bit.o/64bit.o 并使用“ar -t”检查

我尝试过“strings xyz.a | grep 32”,但这在版本中效果不佳。不是一个令人心碎的问题,但如果你知道一个优雅的解决方案,我想知道。

最佳答案

objdump 似乎是最好的方法:

objdump -f libfoo.a | grep ^architecture

https://stackoverflow.com/questions/5665228/

相关文章:

linux - linux动态链接器的 "no version information availa

linux - 如何将我的密码更改为符号链接(symbolic link)目录的真实路径?

c - 什么是 vdso 和 vsyscall?

linux - 多个 GZip 文件的快速连接

python - 是否可以按降序使用 argsort?

linux - 比较 Unix/Linux IPC

python - 通过 'ElementTree' 在 Python 中使用命名空间解析 XML

python - 如何在Python中检查两个列表是否循环相同

python - 为什么会发生这个 UnboundLocalError(关闭)?

python - 是否可以将另一个版本的 Python 安装到 Virtualenv?