【问题标题】:Cannot load library soinfo_relocate(linker.cpp:975): cannot locate symbol "log2f" referenced by "libvlfeat.so"无法加载库 soinfo_relocate(linker.cpp:975):无法找到“libvlfeat.so”引用的符号“log2f”
【发布时间】:2015-09-01 08:47:07
【问题描述】:

我正在开发一个以原生 C 为核心处理的 Android 应用程序。我使用 NDKr10 从本机代码和成功构建库。但是当我尝试加载库时,会显示错误:

Cannot load library soinfo_relocate(linker.cpp:975): cannot locate symbol "log2f" referenced by "libvlfeat.so"...

我找到一些资源说这个错误是由gcc编译器和Android目标版本引起的,但我不确定。(我的目标SDK是21)。

更新:我的应用在 api 21 设备上运行良好,但较低版本显示错误。

有人知道这个问题吗?请给我一个解决方案来解决这个问题。

谢谢。

【问题讨论】:

  • 嗨 Vuong,你有没有设法解决这个问题?

标签: android c++ gcc android-ndk


【解决方案1】:

您必须按照解决它们之间依赖关系的顺序加载 .so 库。也就是说,您必须对加载顺序进行硬编码。

关于Android.mk的一些知识可以在hereherehere找到。 (但如果您的项目编译成功,您的 Android.mk 很可能可以正常工作。)

有一个问题,libs/armeabilibs/armeabi-v7a 中的 .so 库不能合并。也就是说,如果你只有armeabi版本的一些预编译库,那么为armeabi-v7a编译你的库是没有用的(因为不会找到预编译的armeabi库)。

【讨论】:

  • 我只是测试了我的应用程序,它在 api 21 设备上运行良好,但较低版本显示错误。
猜你喜欢
  • 1970-01-01
  • 2023-03-09
  • 2023-01-04
  • 1970-01-01
  • 2021-06-27
  • 1970-01-01
  • 1970-01-01
  • 2011-05-05
  • 1970-01-01
相关资源
最近更新 更多