【问题标题】:How to check a NDK library info?如何查看 NDK 库信息?
【发布时间】:2019-03-29 05:49:31
【问题描述】:

现在我有一个 NDK 共享库。例如:libfoo.so
我想知道 libfoo.so 是用哪个 NDK 版本构建的?
NDK 有对此的命令或工具吗?
我已经尝试过“文件”命令,但它似乎没有显示任何有关 NDK 的信息。

【问题讨论】:

  • .dynamic 部分可以指示libc.so所需的版本,但我不知道如何链接到NDK。

标签: c++ android-ndk shared-libraries


【解决方案1】:

库中有一个注释部分对此进行了描述。你可以使用https://android.googlesource.com/platform/ndk/+/refs/heads/master/parse_elfnote.py 来解析它。举个例子:

$ ./parse_elfnote.py android-ndk-r20/toolchains/llvm/prebuilt/linux-x86_64/sysroot/usr/lib/aarch64-linux-android/libc++_shared.so 
----------ABI INFO----------
ABI_ANDROID_API: 21
ABI_NDK_VERSION: r20
ABI_NDK_BUILD_NUMBER: 5594570

【讨论】:

  • 备注部分是自动添加还是手动添加?
  • 自动。它是 NDK 的 crtbegin 的一部分。
  • 谢谢! Dan,我发现这个功能是从某个 NDK 版本中添加的。 (我试过 r13b 和 r16b,r13b 没有这个部分,r16b 有这个部分)。或者可能需要添加一些标志和选项以在低 NDK 版本上启用此功能?
  • 没有标记,只是在旧版本中不可用。
猜你喜欢
  • 2011-11-06
  • 1970-01-01
  • 2016-12-11
  • 1970-01-01
  • 2020-11-30
  • 2014-10-19
  • 1970-01-01
  • 1970-01-01
  • 2019-01-23
相关资源
最近更新 更多