网站小游戏怎么做,百度极速版下载安装,网站建设中的图片,乐清做网站培训一、示例#xff1a;
使用第三方SO库以导入OpenCV和MNN的SO库为例
1、将MNN和Opencv的so文件(包括.407文件)#xff0c;放入模块下libs目录对应的版本(arm64-v8a和armeabi-v7a)
entry/libs/arm64-v8a/xxx.so2、配置模块目录下的build-profile.json5的buildOption字段…一、示例
使用第三方SO库以导入OpenCV和MNN的SO库为例
1、将MNN和Opencv的so文件(包括.407文件)放入模块下libs目录对应的版本(arm64-v8a和armeabi-v7a)
entry/libs/arm64-v8a/xxx.so2、配置模块目录下的build-profile.json5的buildOption字段增加abiFilters字段:
buildOption:{
externalNativeOptions:{
..
abiFilters:[
arneabi-v7a,
arn64-v8a
]
},
},3、在CMakeLists.txt所在目录创建thirdPart”目录然后将MNN和opencv的头文件放入该目录(头文件在提供的压缩包的 include目录里):
src/main/cpp/thirdPart/MNN/xxxx.hpp
src/main/cpp/thirdPart/opencv/opencv4/opencv2/xxxx.hpp4、修改CMakeLists.txt文件增加以下内容:
//实际打包内容为lib中所有的so文件当前开发测试阶段可以先放入所有的so;后续有裁减包大小的诉求时根据你们使用的so库我们会提供对应的方案
// 链接需要的so库至当前的模块可引入需要的模块
//yitusdk’表示模块名称;${CMAKE_CURRENT_SOURCE_DIR}表示CMakeLists所在目录;${0HOS_ARCH}表示构建的对应版本(arm64-v8a等)
target_link_libraries(yitusdk PUBLIC ${CMAKE_CURRENT_SOURCE_DIR}/../../../libs/${0HOS_ARCH}/1ibMNN.so)
target_link_libraries (yitusdk PUBLIC ${CMAKE_CURRENT_SOURCE_DIR}/../../../libs/${0HOS_ARCH}/libopencv_core.so)
target_link_libraries(yitusdk PUBLIC ${CMAKE_CURRENT_SOURCE_DIR}/../../../libs/${0HOS_ARCH}/libopencv_imgproc.so)//引入对应的头文件实际打包头文件不会影响包大小
target_include_directories(yitusdk PRIVATE ${CMAKE_CURRENT_SOURCE_DIR}/thirdPart)//以下根据实际情况某个库如opencv根据include时的错误信息可以写多条
target_include_directories(yitusdk PRIVATE ${CMAKE_CURRENT_SOURCE_DIR}/thirdPart/opencv/opencv4)
target_include_directories(yitusdk PRIVATE ${CMAKE_CURRENT_SOURCE_DIR} /thirdPart/opencv)补充说明:放置so文件时注意对应的407也需要一同放入(由于windows环境的特殊)
二、其他补充说明
鸿蒙只能使用基于napi编译的soHarmonyOS的应用必须用js来桥接native。需要使用ace_napi仓中提供的napi接口来处理js交互。
使用鸿蒙提供的NDK直接开发so库可以直接使用如果是其他环境下编译的so库需要封装Napi调用SO库
Node-API开发规范
Native API在应用工程中的使用指导
基于NDK编译三方库