dlopen失败,无法在Android上找到符号

时间:2017-06-21 06:00:29

标签: android c++ cmake dlopen

我正在构建一个二进制可执行文件,可以在Android上运行一些共享库。 构建,链接和执行很好但在执行期间尝试加载其中一个共享库。 这会失败,因为它无法找到该库中的符号(据称)。

void *handle = dlopen(_path.c_str(), RTLD_LAZY | RTLD_GLOBAL);
if (0 != handle) {
    its_symbol = dlsym(handle, _symbol.c_str());
} else {
    std::cout << "Loading failed: (" << dlerror() << ")";
}

我的问题是,可能是什么原因以及如何解决或规避它? 当针对linux构建时,这同样完美。 我尝试了什么:

  • 检查cmake参数
  • 更改dlopen标志

错误讯息:

警告:链接器:$ library $:unused DT条目:类型0xf arg 0x24c5 2017-06-21 05:08:02.223634 [错误]加载失败:( dlopen失败:找不到$ library $引用的符号$ symbol $

0 个答案:

没有答案