Win端交叉编译鸿蒙Ohos Native层第三方库流程

发布于:2024-05-20 ⋅ 阅读:(150) ⋅ 点赞:(0)

1. 概述

鸿蒙端SDK开发需要依赖使用到的三方库(如OpenCV、其他C++库等),以下为Windows端交叉编译Ohos端三方库流程

2. 准备工作

与Android NDK交叉编译相类似,我们首先需要下载OpenHarmony NDK(包含在OpenHarmony SDK中),这里笔者使用IDE中自带NDK进行操作。

DevEco Studio下载地址:
https://developer.huawei.com/consumer/cn/deveco-studio/
OpenHarnony SDK下载地址:
https://gitee.com/openharmony/docs/tree/master/zh-cn/release-notes#openharmony-release-notes

OpenHarmony NDK目录:

native
├── NOTICE.txt
├── build                            # cmake工具链的配置
├── build-tools                      # cmake工具链目录
├── docs
├── llvm                             # llvm编译器工具链
├── nativeapi_syscap_config.json     # NDK提供的SystemCapability的相关头文件
├── ndk_system_capability.json       # NDK提供的SystemCapability的描述文件
├── oh-uni-package.json              # 版本信息
└── sysroot                          # NDK包含的库文件和头文件

3.编译流程

1.解压NDK压缩包,将cmake工具链添加到环境变量中

# 注意这里是win11的powershell环境, 添加临时环境变量
$env:path+=";J:\Users\Administrator\Huawei\Sdk\openharmony\9\native\build-tools\cmake\bin"

2.进入待编译的三方库目录 (需要是支持CMake编译方式的, powershell命令行)
3.编译

mkdir build
cd build
cmake `
-DOHOS_STL=c++_shared `
-DOHOS_ARCH=x86_64 `
-DOHOS_PLATFORM=OHOS `
-DCMAKE_TOOLCHAIN_FILE=${SDK路径}/openharmony/9/native/build/cmake/ohos.toolchain.cmake ..

# 参数解释:
# OHOS_STL:默认c++_shared,可选c++_static
# OHOS_ARCH: 默认arm64-v8a,可选armeabi-v7a、x86_64
# OHOS_PLATFORM:仅支持OHOS
# CMAKE_TOOLCHAIN_FILE:cmake的工具链的配置文件所在路径
# 关于CMAKE的其他配置选项,应当放置在-DCMAKE_TOOLCHAIN_FILE 之后


ninja
# ninja install (可选等同于 make install)

4.参考

https://gitee.com/openharmony/build/blob/master/docs/how-to-use-the-ndk-tools.md#https://gitee.com/openharmony/docs/tree/master/zh-cn/release-notes#openharmony-release-notes


网站公告

今日签到

点亮在社区的每一天
去签到