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

2024-05-16 15:12

本文主要是介绍Win端交叉编译鸿蒙Ohos Native层第三方库流程,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

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

这篇关于Win端交叉编译鸿蒙Ohos Native层第三方库流程的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/995262

相关文章

java使用protobuf-maven-plugin的插件编译proto文件详解

《java使用protobuf-maven-plugin的插件编译proto文件详解》:本文主要介绍java使用protobuf-maven-plugin的插件编译proto文件,具有很好的参考价... 目录protobuf文件作为数据传输和存储的协议主要介绍在Java使用maven编译proto文件的插件

Spring Security中用户名和密码的验证完整流程

《SpringSecurity中用户名和密码的验证完整流程》本文给大家介绍SpringSecurity中用户名和密码的验证完整流程,本文结合实例代码给大家介绍的非常详细,对大家的学习或工作具有一定... 首先创建了一个UsernamePasswordAuthenticationTChina编程oken对象,这是S

Visual Studio 2022 编译C++20代码的图文步骤

《VisualStudio2022编译C++20代码的图文步骤》在VisualStudio中启用C++20import功能,需设置语言标准为ISOC++20,开启扫描源查找模块依赖及实验性标... 默认创建Visual Studio桌面控制台项目代码包含C++20的import方法。右键项目的属性:

Android ViewBinding使用流程

《AndroidViewBinding使用流程》AndroidViewBinding是Jetpack组件,替代findViewById,提供类型安全、空安全和编译时检查,代码简洁且性能优化,相比Da... 目录一、核心概念二、ViewBinding优点三、使用流程1. 启用 ViewBinding (模块级

SpringBoot整合Flowable实现工作流的详细流程

《SpringBoot整合Flowable实现工作流的详细流程》Flowable是一个使用Java编写的轻量级业务流程引擎,Flowable流程引擎可用于部署BPMN2.0流程定义,创建这些流程定义的... 目录1、流程引擎介绍2、创建项目3、画流程图4、开发接口4.1 Java 类梳理4.2 查看流程图4

java Long 与long之间的转换流程

《javaLong与long之间的转换流程》Long类提供了一些方法,用于在long和其他数据类型(如String)之间进行转换,本文将详细介绍如何在Java中实现Long和long之间的转换,感... 目录概述流程步骤1:将long转换为Long对象步骤2:将Longhttp://www.cppcns.c

华为鸿蒙HarmonyOS 5.1官宣7月开启升级! 首批支持名单公布

《华为鸿蒙HarmonyOS5.1官宣7月开启升级!首批支持名单公布》在刚刚结束的华为Pura80系列及全场景新品发布会上,除了众多新品的发布,还有一个消息也点燃了所有鸿蒙用户的期待,那就是Ha... 在今日的华为 Pura 80 系列及全场景新品发布会上,华为宣布鸿蒙 HarmonyOS 5.1 将于 7

spring-gateway filters添加自定义过滤器实现流程分析(可插拔)

《spring-gatewayfilters添加自定义过滤器实现流程分析(可插拔)》:本文主要介绍spring-gatewayfilters添加自定义过滤器实现流程分析(可插拔),本文通过实例图... 目录需求背景需求拆解设计流程及作用域逻辑处理代码逻辑需求背景公司要求,通过公司网络代理访问的请求需要做请

使用JavaConfig配置Spring的流程步骤

《使用JavaConfig配置Spring的流程步骤》JavaConfig是Spring框架提供的一种基于Java的配置方式,它通过使用@Configuration注解标记的类来替代传统的XML配置文... 目录一、什么是 JavaConfig?1. 核心注解2. 与 XML 配置的对比二、JavaConf

java对接第三方接口的三种实现方式

《java对接第三方接口的三种实现方式》:本文主要介绍java对接第三方接口的三种实现方式,具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑完全的地方,望不吝赐教... 目录HttpURLConnection调用方法CloseableHttpClient调用RestTemplate调用总结在日常工作