【发布时间】:2016-09-28 11:42:30
【问题描述】:
我在 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
【问题讨论】:
-
请参阅
objdump -i- objdump 的特定构建可以理解 objdump 的特定构建被配置为理解的任何内容。如果您正在交叉编译,该工具链可能还提供其自己的适当配置的 objdump 二进制文件。 -
尝试使用 binutils-arm-linux-gnueabi 包中的
arm-linux-gnueabi-objdump。我猜你有一个 Linux 共享库,并且正在使用 Ubuntu 交叉编译器。如果没有,crosstool-ng 具有 objdump 与您的编译器使用的任何前缀,并且大多数人从该项目中进行 ARM 交叉。更直接地说,您的objdump只了解 ELF 的 PC 扩展。
标签: arm shared-libraries objdump