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

相关文章

Spring Boot 中的默认异常处理机制及执行流程

《SpringBoot中的默认异常处理机制及执行流程》SpringBoot内置BasicErrorController,自动处理异常并生成HTML/JSON响应,支持自定义错误路径、配置及扩展,如... 目录Spring Boot 异常处理机制详解默认错误页面功能自动异常转换机制错误属性配置选项默认错误处理

Go语言编译环境设置教程

《Go语言编译环境设置教程》Go语言支持高并发(goroutine)、自动垃圾回收,编译为跨平台二进制文件,云原生兼容且社区活跃,开发便捷,内置测试与vet工具辅助检测错误,依赖模块化管理,提升开发效... 目录Go语言优势下载 Go  配置编译环境配置 GOPROXYIDE 设置(VS Code)一些基本

Spring Boot从main方法到内嵌Tomcat的全过程(自动化流程)

《SpringBoot从main方法到内嵌Tomcat的全过程(自动化流程)》SpringBoot启动始于main方法,创建SpringApplication实例,初始化上下文,准备环境,刷新容器并... 目录1. 入口:main方法2. SpringApplication初始化2.1 构造阶段3. 运行阶

使用Go实现文件复制的完整流程

《使用Go实现文件复制的完整流程》本案例将实现一个实用的文件操作工具:将一个文件的内容完整复制到另一个文件中,这是文件处理中的常见任务,比如配置文件备份、日志迁移、用户上传文件转存等,文中通过代码示例... 目录案例说明涉及China编程知识点示例代码代码解析示例运行练习扩展小结案例说明我们将通过标准库 os

Ubuntu 24.04启用root图形登录的操作流程

《Ubuntu24.04启用root图形登录的操作流程》Ubuntu默认禁用root账户的图形与SSH登录,这是为了安全,但在某些场景你可能需要直接用root登录GNOME桌面,本文以Ubuntu2... 目录一、前言二、准备工作三、设置 root 密码四、启用图形界面 root 登录1. 修改 GDM 配

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