HarmonyOS 鸿蒙Next MNN动态库不能加载
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
请参考下以下方式编译so [https://gitee.com/openharmony-sig/tpc_c_cplusplus/blob/master/lycium/doc/ohos_use_sdk/OHOS_SDK-Usage.md]
更多关于HarmonyOS 鸿蒙Next MNN动态库不能加载的实战系列教程也可以访问 https://www.itying.com/category-93-b0.html
针对“HarmonyOS 鸿蒙Next MNN动态库不能加载”的问题,可能的原因及解决方案如下:
-
动态库路径问题:确保MNN动态库文件(如libmnn.so)已正确放置在应用可访问的路径下,或在加载时指定了正确的路径。检查应用的配置,确保动态库搜索路径包含该库文件所在目录。
-
动态库依赖问题:MNN动态库可能依赖其他库文件。使用
ldd
命令(在Linux环境下)检查MNN动态库的依赖是否都已满足,并确保这些依赖库也存在于正确的路径。 -
ABI兼容性问题:确认MNN动态库的编译目标架构与应用运行时的设备架构相匹配。例如,如果设备是64位的,动态库也应该是64位的。
-
权限问题:检查应用是否有权限访问动态库文件。在某些情况下,可能需要修改文件系统的权限设置或应用的权限请求。
-
动态库损坏:确认MNN动态库文件未损坏。可以尝试重新下载或重新编译动态库。
如果以上方法均未能解决问题,可能是动态库与HarmonyOS系统的特定版本存在不兼容问题。此时,建议查阅HarmonyOS的官方文档或社区论坛,以获取更多关于系统兼容性和已知问题的信息。
如果问题依旧没法解决请联系官网客服,官网地址是:https://www.itying.com/category-93-b0.html