Macos 如何获取OS X的readelf和objdump二进制文件?

Macos 如何获取OS X的readelf和objdump二进制文件?,macos,android-ndk,shared-libraries,symbols,.so,Macos,Android Ndk,Shared Libraries,Symbols,.so,从哪里可以下载适用于OS X的readelf和objdump二进制文件?我正在尝试从NDK获取导出函数的列表。所以库和nm或otool都不适合我。我已经读过,这个库可能是elf格式的,readelf或objdump可以工作 我能够找到这些实用程序的源代码,但我想要二进制文件。肯定已经有人编过了 这篇SO文章中有很多信息:当nm对我不起作用时,建议使用readelf和objdump。这些工具是NDK的一部分。您可以在NDK中的toolschains子目录中找到它们,例如android-NDK-r1

从哪里可以下载适用于OS X的readelf和objdump二进制文件?我正在尝试从NDK获取导出函数的列表。所以库和nm或otool都不适合我。我已经读过,这个库可能是elf格式的,readelf或objdump可以工作

我能够找到这些实用程序的源代码,但我想要二进制文件。肯定已经有人编过了


这篇SO文章中有很多信息:当nm对我不起作用时,建议使用readelf和objdump。

这些工具是NDK的一部分。您可以在NDK中的
toolschains
子目录中找到它们,例如
android-NDK-r10e/toolschains/arm-linux-androideabi-4.9/prebuild/darwin-x86\u 64/bin/arm-linux-androideabi-objdump
。还有一个版本的
nm
实用程序,它可以理解您的ELF.so文件,
arm-linux-androideabi-nm
,路径与上面相同。

这些都是linux工具。甚至连他们都没有。OSX(至少优胜美地)有一个不错的本地
otool
。otool对我不起作用(如问题中所述)。如果你能推荐正确的使用方法,那就去吧。大多数情况下,我得到“libMylib.so不是一个对象文件”,但有时我什么也得不到。手册页帮助很神秘。我只需要导出的函数名。是的,很抱歉没有引起注意,找到这些实用程序的好机会是。readelf和objdump在OS X上工作吗?如果它们是MacPorts的一部分(或者更好地说,如果有人花时间使它们工作(这非常困难,有时甚至不可能),是的;但我严重怀疑(我面前没有我的MAC电脑,在那里我使用的是
otool
);有不同的二进制文件集不能跨平台工作(当Linux可执行文件试图在Windows上运行时也是如此)。确实找到了它们(在Finder中列为“别名”)在darwin-x86_64/arm linux Androidabi/bin中。但是当我运行nm-g libMylib.so时,什么也没有发生。当我运行objdump-TC libMylib.so时,我得到了:objdump:command not found。然后我看到了arm linux Androidabi nm和arm linux Androidabi objdump文件(在Finder中列为“Unix可执行文件”)在darwin-x86_64/bin目录中。尝试同时使用这两个目录会导致“找不到命令”。我将libMylib.so放在我正试图运行的实用程序所在的文件夹中。很明显,您已经正确回答了我关于如何获取这些二进制文件的问题,尽管我还无法使用它们获取符号。我需要将此标记为其他人的正确答案,并将针对我的问题发布一个新问题。也许您可以帮助我获取这些二进制文件成功地使用这些实用程序。