Objdump无法识别共享库的体系结构

时间:2016-09-28 11:42:30

标签: arm shared-libraries objdump

我在Ubuntu 14.04上为ARM平台构建了一个共享库。该文件已成功编译和构建。我可以使用 nm 命令检查导出的符号,但是当我检查.so文件头时,我得到了架构未知的信息。

这个库是否正确构建,为什么库架构未知

objdump -f libMyLib.so 

libMyLib.so:  file format elf32-little
architecture: UNKNOWN!, flags 0x00000150:
HAS_SYMS, DYNAMIC, D_PAGED
start address 0x000033a0

1 个答案:

答案 0 :(得分:0)

您需要使用目标系统 (ARM) 的工具链提供的 objdump 二进制文件,而不是来自主机系统 (x86_64)。

例如:我已经设置了一个针对 openwrt mips 的主机系统 Linux x86_64,我的工具链文件夹中有一些文件:

mips-openwrt-linux-gnu-ar
mips-openwrt-linux-gnu-as
mips-openwrt-linux-gnu-gcc
mips-openwrt-linux-gnu-ld
mips-openwrt-linux-gnu-objdump
mips-openwrt-linux-gnu-nm

这些是为 openwrt mips 系统操作程序的工具,所以我需要调用 ./mips-openwrt-linux-gnu-objdump -f <bin file> 来读取并获取编译文件的正确输出,而不是仅仅调用 objdump。