Gur*_*uji 10 c++ shared-libraries shared-objects
有没有办法在不加载的情况下读取.SO(共享对象)文件的内容?
我的用例场景是:
注意:我可以轻松地在DLL上执行这些操作.我也在Windows上工作,所以我无法加载.SO文件.
谢谢
TCA*_*n07 11
向屏幕: readelf -a <file>
要保存输出,请将其转储到文件中.例如,我正在学习Raspberry Pi上的Python RPi.GPIO模块,它存储在/usr/lib/python2.7/dist-packages/RPi中,因此我运行:
readelf -a GPIO.so > ~/gpio.so.out
您可以使用GNU binutils中包含的工具读取这些文件。虽然GNU binutils通常安装在Linux系统上,但Windows并非如此。但是,它们在Windows下的Cygwin或minGW中运行。
资源:
请注意,使用MinGW(3.),您不需要Cygwin(2.)并自己编译Binutils(1.)。Binutils包含在MinGW(3.)中,但是您也可以尝试仅下载MinGW(4.)的Binutils部分。
下面说明了如何使用nm和readelf获取信息:
如何在.so文件中列出符号
如果要将此功能包含在C ++程序中,则可以合并这些工具的源代码(请注意许可证!),也可以从程序中调用它们。可能需要Cygwin环境才能在Windows下编译源代码。