我们在 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
    

    关于linux - 在 LINUX 中确定 .a 库/存档是 32 位还是 64 位?,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/5665228/

    10-15 18:06