我有一个.SO文件(注意,不是.a,不是.dylib,也不是.o),我需要在OSX上从中获取符号信息。
我尝试过
nm -gU lib.so
然而,没有任何内容被打印出来。
我无法使用otool,因为它不是一个目标文件,并且在OSX上不存在readelf。我该如何获取符号信息?
请注意,我在另一个项目中使用这个.so文件,其中包含符号信息。我能够加载库并从中引用函数。但是,我还没有找到一种在OSX上让我打印符号信息的工具。
如要求所述,
file lib.so
ELF 32-bit LSB shared object, ARM, version 1 (SYSV), dynamically linked, stripped
file lib.so
会输出什么内容?顺便说一句,MacPorts 支持各种与 ELF 相关的软件包。例如,elftoolchain
包包括一个readelf
工具。i386-elf-binutils
或x86_64-elf-binutils
也可能有一些有用的东西。我相信其他软件包系统也有类似的软件包。 - Ken Thomasesnm
等实用程序不处理ELF格式。它们也不会使用相同的命令行语法。我描述了如何在Linux上构建和安装binutils
以处理Mach-O文件。您可能想要编译binutils
以在OSX/Darwin上运行(托管),但--target
需要是arm-elf
或某个变体。我记不清具体的ARM架构,但可能有构建选项可以处理从旧的ARM版本到AArch64的所有内容。 - Brett Haleport list | grep -i binutils
列出了几个软件包,如:arm-elf-binutils
。 - Brett Hale