如何获取.so文件的依赖项列表?

4nt*_*ine 3 c++ java-native-interface android shared-libraries android-ndk

假设我已经libFoo.so为android(arm)编译了.我不确定它链接到哪个STL实现(有选项).我怎样才能获得依赖关系(如.so列表),以便了解我应该提供哪些文件并加载使用System.load(...)/loadLibrary(...)

mst*_*sjo 6

您可以使用该objdump工具并过滤掉相关部分.在这种情况下,例如arm-linux-androideabi-objdump -p libFoo.so | grep NEEDED.

ldd通常建议的工具也会这样做,但它会尝试实际查找要加载的所有文件,并且在交叉编译环境中并不总是可用.