蓝香蕉代码 |【鸿蒙电脑开发编译C/C++】

蓝香蕉代码 |【鸿蒙电脑开发编译C/C++】

lycium_plusplus介绍

项目地址

lycium++支持鸿蒙电脑使用

上次我们介绍了lycium++框架的扩展,最近针对在鸿蒙电脑上使用框架也进行下介绍

如何使用

解决了什么问题

lycium++框架支持在win/mac/linux上进行交叉编译,支持一件打包hnp文件,通过这些hnp作为组件与应用一起安装到鸿蒙电脑上,在HarmonyOS上使用该框架也成为了可能。本次我们将框架在鸿蒙电脑上进行了适配,通过交叉编译解决了在鸿蒙电脑上执行编译的工具最小集,并伴随DevBoxPython安装器DevNode-OHGitNext几个核心应用的上架,解决了在鸿蒙电脑中,通过命令行编译C/C++代码的核心问题。

环境介绍

  • 设备:我使用的MateBook Pro已经升级到6.0.0.115版本,建议升级到该版本以上
  • 代码管理工具GitNext,作为代码管理工具下载管理三方库等,下载后可在系统终端中使用(个人推荐),也可以使用界面管理
  • 编译工具链DevBox,包含了llvmclangautoconfbashcmakemakeninjahdchnpclim4等编译基础工具,安装后可在系统的终端中使用
  • Python环境Python安装器,包含了python3.12的运行时,下载后可在终端中执行python脚本
  • Java环境BiShengJDK8-OH \ BiShengJDK17-OH,用于提供Java虚拟机环境,这个在之前的文章编译获取鸿蒙版本JDK中也讲到过(我这里使用的是JDK17)

以上几个应用是必须要下载的,lycium++环境非常依赖这几个核心环境,GitNext下载后需要手动完成密钥设置,具体设置方式如下

git config --global user.name <yourname> git config --global user.email <youremail> ssh-keygen -t rsa -b 2048 -C <youremail> cat ~/.ssh/id_rsa.pub 

把拿到的公钥配置到代码仓托管平台中,如gitcode托管仓中,可以参考他的详细配置提示

在这里插入图片描述


其他几个应用在应用市场搜索即可,我使用的IDE主要是CodeArts

应用图片


应用市场:BiShengJDK17-OH
应用市场:DevBox
应用市场:Python安装器
应用市场:GitNext
CodeArts IDE 通过应用市场->我的->应用尝鲜 搜索CodeArts安装下载

在这里插入图片描述

修改介绍

本次修改了在鸿蒙电脑上运行的环境配置,主要修改如下:

  1. 增加了build_local.sh本机构建入口
  2. lycium/script/build_hpk.sh调整了在执行build_local.sh时,仅构建适配平台的架构,当前适配了HarmonyOS,因此在TARGET_HARMONYOS变量为华为鸿蒙电脑构建的标识,在执行arch选择时,仅执行arm64-v8a
  3. 由于大部分脚本编写都是基于bash的,为了保证兼容性,将sh脚本的解释器指定为#!/bin/env bash

HPKBUILD适配

在框架适配后,每个ports仓仅需要适配HPKBUILD脚本即可完成本地构建适配

  1. 在prepare阶段,判断TARGET_HARMONYOS变量,若为true,怎执行setHarmonyOSENV环境变量设置(该设置指定了CC/CXX等常用的构建命令)
  2. host/type/build通过BUILD_SYSTEM_CONFIG变量指定为aarch64-linux,欺骗config类架构判断方式
  3. 其他保持不变

bash为例子ohos-bash

判断当TARGET_HARMONYOS为true时,设置本机构建环境变量setHarmonyOSENV


判断当TARGET_HARMONYOStrue时,设置本机构建环境变量setHarmonyOSENV

下载框架

安装配置好git后,可以在终端中通过执行以下命令下载框架

git clone https://gitcode.com/OpenHarmonyPCDeveloper/lycium_plusplus 

构建

框架代码下载好后,按照以下方式执行构建,注意构建过程中注意弹窗,不要功亏一篑

cd lyium ./build_local.sh bash 
在这里插入图片描述

过程中出现弹窗,点击确认才可以继续:鸿蒙电脑当前已经允许外来二进制执行了,我们提供的clang已经支持了编译后自动签名的能力,因此在脚本执行构建过程中,产生新的二进制且被脚本或编译框架调度执行,需要我们主动确认后才能继续(若需要单独签名,下一次单独介绍下)

在这里插入图片描述

构建结果在本机构建时均除了与交叉编译的结果同样的路径外,在lycium/uer/local下会安装所有通过脚本编译的命令,可以设置环境变量将这些命令加入到终端中,便于后续执行;该路径默认为工程下的lycium/uer/local,也可以通过设置INSTALL_LOCAL_PERFIX环境变量后执行构建以指定到您想安装的目录。

在这里插入图片描述


本地编译好的命令,可以直接./执行,首次执行时仍然要点击运行

在这里插入图片描述


超期未点击,会报operation not permitted

在这里插入图片描述


首次尝试可以执行./build_local.sh tree体验尝试

其他

构建结果、产物等,与交叉编译无异,经过该框架编译的二进制,在鸿蒙电脑上可以直接执行(需要我们自己确认弹窗)

下次单独介绍下如何把其他人编译好的二进制,在鸿蒙电脑上签名执行

附录

几个相关的代码仓
tree
bash
lycium_plusplus
muslc_gext

应用及环境相关工具开源应用
GitNext
BiShengJDKInstaller
bishengjdk-8
bishengjdk-17
DevPython-OH
DevBox
DevNode-OH

Read more

最新电子电气架构(EEA)调研-3

而新一代的强实时性、高确定性,以及满足CAP定理的同步分布式协同技术(SDCT),可以实现替代TSN、DDS的应用,且此技术已经在无人车辆得到验证,同时其低成本学习曲线、无复杂二次开发工作,将开发人员的劳动强度、学习曲线极大降低,使开发人员更多的去完成算法、执行器功能完善。 五、各大车厂的EEA 我们调研策略是从公开信息中获得各大车厂的EEA信息,并在如下中进行展示。 我们集中了华为、特斯拉、大众、蔚来、小鹏、理想、东风(岚图)等有代表领先性的车辆电子电气架构厂商。        1、华为 图12 华为的CCA电子电气架构              (1)华为“计算+通信”CC架构的三个平台                         1)MDC智能驾驶平台;                         2)CDC智能座舱平台                         3)VDC整车控制平台。        联接指的是华为智能网联解决方案,解决车内、车外网络高速连接问题,云服务则是基于云计算提供的服务,如在线车主服务、娱乐和OTA等。 华

By Ne0inhk
Apache IoTDB 架构特性与 Prometheus+Grafana 监控体系部署实践

Apache IoTDB 架构特性与 Prometheus+Grafana 监控体系部署实践

Apache IoTDB 架构特性与 Prometheus+Grafana 监控体系部署实践 文章目录 * Apache IoTDB 架构特性与 Prometheus+Grafana 监控体系部署实践 * Apache IoTDB 核心特性与价值 * Apache IoTDB 监控面板完整部署方案 * 安装步骤 * 步骤一:IoTDB开启监控指标采集 * 步骤二:安装、配置Prometheus * 步骤三:安装grafana并配置数据源 * 步骤四:导入IoTDB Grafana看板 * TimechoDB(基于 Apache IoTDB)增强特性 * 总结与应用场景建议 Apache IoTDB 核心特性与价值 Apache IoTDB 专为物联网场景打造的高性能轻量级时序数据库,以 “设备 - 测点” 原生数据模型贴合物理设备与传感器关系,通过高压缩算法、百万级并发写入能力和毫秒级查询响应优化海量时序数据存储成本与处理效率,同时支持边缘轻量部署、

By Ne0inhk
SQL Server 2019安装教程(超详细图文)

SQL Server 2019安装教程(超详细图文)

SQL Server 介绍) SQL Server 是由 微软(Microsoft) 开发的一款 关系型数据库管理系统(RDBMS),支持结构化查询语言(SQL)进行数据存储、管理和分析。自1989年首次发布以来,SQL Server 已成为企业级数据管理的核心解决方案,广泛应用于金融、电商、ERP、CRM 等业务系统。它提供高可用性、安全性、事务处理(ACID)和商业智能(BI)支持,并支持 Windows 和 Linux 跨平台部署。 一、获取 SQL Server 2019 安装包 1. 官方下载方式 前往微软官网注册账号后,即可下载 SQL Server Developer 版本(

By Ne0inhk