HarmonyOS 使用lycium编译了opencv4.8和4.2版本都会出现debug程序启动时崩溃?

使用lycium编译了opencv4.8,4.2版本都会出现debug程序启动时崩溃直接在DS创建的nativeDemo,只要添加opencv启动就会崩溃

阅读 482
1 个回答

该报错应该是没有正确链接上so导致的:

1、首先需要在终端中输入 readelf -d entry/libs/arm64-v8a/libxxx.so来查找soname,确认下动态库的soname,将entry/libs/${OHOS\_ARCH}下的so改名为这个soname

2、Cmakelist中使用三方库中的路径,使用如下的方式链接so:

target_link_libraries(entry PRIVATE ${CMAKE_CURRENT_SOURCE_DIR}/thirdparty/xxx/${OHOS_ARCH}/lib/libxxx.so)

而不是选择

${CMAKE_CURRENT_SOURCE_DIR}/../../../libs/${OHOS_ARCH}/libxxx.so)

的路径,这样链会导致名字和带版本号的so不统一

3、请确保entry/libs在不同框架(如arm64\_v8a、x86\_64)下的so与src/main/cpp/thirdparty/xxx下对应框架下的so文件大小一致(非软链接)且文件名无误

具体可以参考链接:

https://gitee.com/openharmony-sig/tpc\_c\_cplusplus/blob/master/lycium/doc/app\_calls\_third\_lib.md

撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进