HarmonyOS 鸿蒙Next MNN动态库不能加载

发布于 1周前 作者 sinazl 来自 鸿蒙OS

HarmonyOS 鸿蒙Next MNN动态库不能加载 MNN是阿里巴巴开源的端智能推理引擎 https://github.com/alibaba/MNN, 编译产物为libMNN.so和libMNN_Express.so

编译脚本如下:

#!/bin/bash
cmake ../../../ \
-DCMAKE_TOOLCHAIN_FILE=${OHOS_SDK_ROOT}/openharmony/10/native/build/cmake/ohos.toolchain.cmake \
-DCMAKE_BUILD_TYPE=Release \
-OHOS_ARCH="arm64-v8a" \
-OHOS_STL=c++_shared \
-DMNN_USE_LOGCAT=false \
-DMNN_BUILD_BENCHMARK=ON \
-DMNN_USE_SSE=OFF \
-DMNN_SUPPORT_BF16=OFF \
-DMNN_BUILD_TEST=ON \
-DMNN_BUILD_FOR_ANDROID_COMMAND=false \
-NATIVE_LIBRARY_OUTPUT=. -DNATIVE_INCLUDE_OUTPUT=.
$1 $2 $3
make -j8

在cmake中引用后,so不能被load,并且无日志说明原因,有什么办法可以解决吗


更多关于HarmonyOS 鸿蒙Next MNN动态库不能加载的实战系列教程也可以访问 https://www.itying.com/category-93-b0.html

2 回复

更多关于HarmonyOS 鸿蒙Next MNN动态库不能加载的实战系列教程也可以访问 https://www.itying.com/category-93-b0.html


针对“HarmonyOS 鸿蒙Next MNN动态库不能加载”的问题,可能的原因及解决方案如下:

  1. 动态库路径问题:确保MNN动态库文件(如libmnn.so)已正确放置在应用可访问的路径下,或在加载时指定了正确的路径。检查应用的配置,确保动态库搜索路径包含该库文件所在目录。

  2. 动态库依赖问题:MNN动态库可能依赖其他库文件。使用ldd命令(在Linux环境下)检查MNN动态库的依赖是否都已满足,并确保这些依赖库也存在于正确的路径。

  3. ABI兼容性问题:确认MNN动态库的编译目标架构与应用运行时的设备架构相匹配。例如,如果设备是64位的,动态库也应该是64位的。

  4. 权限问题:检查应用是否有权限访问动态库文件。在某些情况下,可能需要修改文件系统的权限设置或应用的权限请求。

  5. 动态库损坏:确认MNN动态库文件未损坏。可以尝试重新下载或重新编译动态库。

如果以上方法均未能解决问题,可能是动态库与HarmonyOS系统的特定版本存在不兼容问题。此时,建议查阅HarmonyOS的官方文档或社区论坛,以获取更多关于系统兼容性和已知问题的信息。

如果问题依旧没法解决请联系官网客服,官网地址是:https://www.itying.com/category-93-b0.html

回到顶部