有没有办法在不加载.SO(共享对象)文件的情况下查看其内容?
我的用例场景是:
- 我在Windows上有一个.so文件。我需要查询一些方法是否存在于.so文件中。
- 了解.so文件中的所有类。
- 给定类名需要找到此类上的所有方法。
注意:我可以轻松地在DLL上执行这些操作。同时,我正在Windows上工作,因此无法加载.so文件。
谢谢
有没有办法在不加载.SO(共享对象)文件的情况下查看其内容?
我的用例场景是:
注意:我可以轻松地在DLL上执行这些操作。同时,我正在Windows上工作,因此无法加载.so文件。
谢谢
筛选内容: readelf -a <file>
readelf -a GPIO.so > ~/gpio.so.out
nm
和readelf
获取信息在这里解释:
How do I list the symbols in a .so file
如果您想将此功能包含到C++程序中,您可以将这些工具的源代码合并到您的程序中(请注意许可证!)或从您的程序内部调用它们。可能需要在Windows下获取Cygwin环境才能使源代码编译。我需要解决Windows操作系统的问题。我使用了Android SDK/NDK中的NDK工具中存在的nm.exe工具。
我将nm.exe的输出转储到某个文件中,然后使用正则表达式从中提取出所有的类和方法。