【问题标题】:How to get dependencies list for .so file?如何获取 .so 文件的依赖项列表?
【发布时间】:2016-02-16 10:46:33
【问题描述】:

假设我正在为 android (arm) 编译 libFoo.so。我不确定它链接到什么 STL 实现(有options)。我如何获取依赖项(如 .so 列表)以了解我应该使用 System.load(...)/loadLibrary(...) 提供和加载哪些文件?

【问题讨论】:

  • 你想知道 libFoo.so 的依赖关系吗?
  • ldd 命令应该会有所帮助。您可以使用设备命令提示符导航到 android 文件系统,然后执行命令 ldd libFoo.so。这将列出该动态库所依赖的所有依赖项!
  • 我怎样才能得到它? ndk 和独立工具链中都没有 ldd。在我的 mac 上找不到它

标签: android c++ android-ndk java-native-interface shared-libraries


【解决方案1】:

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

通常建议的ldd 工具也可以执行此操作,但它会尝试实际查找将要加载的所有文件,并且在交叉编译环境中并不总是可用。

【讨论】:

    猜你喜欢
    • 2021-05-13
    • 2017-12-27
    • 2013-09-10
    • 1970-01-01
    • 1970-01-01
    • 2021-11-30
    • 2010-09-17
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多