【发布时间】:2018-07-05 07:20:03
【问题描述】:
我正在尝试在运行 Android 7.0 的三星上 dlopen /system/vendor/lib/libOpenCL.so,但我遇到了以前从未遇到过的错误:
E/链接器:库“/system/vendor/lib/libOpenCL.so”(“/system/vendor/lib/libOpenCL.so”)需要或被“/data/app/.../lib/命名空间无法访问 arm64/libCLProcessor.so": [name="classloader-namespace", ld_library_paths="", default_library_paths="..."])
它可以在另一个 android 7.0 设备 (Motorola G4) 上使用 libOpenCL.so 在同一目录中。
有人知道为什么它可以在一台设备上运行,而不能在另一台设备上运行吗?
我正在使用 https://github.com/krrishnarraj/libopencl-stub/blob/master/src/libopencl.c 中的代码来 dlopen/使用 cl 函数,它们我的 cl 内核在实际打开开放 cl 库的设备上运行良好。
【问题讨论】:
-
另外,两个设备的 /vendor/etc/public.libraries.txt 文件中都列出了 libOpenCL.so。