我们在 Linux 中分发 64 位和 32 位版本的静态库。在对客户进行故障排除时,我希望我的诊断 shell 脚本通过检查 .a 存档文件以确定它是 32 位还是 64 位来快速消除问题。我想到的方法不够优雅:
提取一个 .o 成员并询问"file"命令(例如,ELF 32 位等)
开始包含一个虚拟成员,该成员被编码以指示,例如32bit.o/64bit.o 并使用“ar -t”检查
我尝试过“strings xyz.a | grep 32”,但这在版本中效果不佳。不是一个令人心碎的问题,但如果你知道一个优雅的解决方案,我想知道。
最佳答案
objdump
似乎是最好的方法:
objdump -f libfoo.a | grep ^architecture
https://stackoverflow.com/questions/5665228/