当前位置: 首页 > news >正文

搭建鸿蒙PC命令行适配环境测试hello程序

搭建鸿蒙PC命令行适配环境

    • 前言
    • 系统环境
      • windows系统搭建好hdc工具
      • wsl系统环境为Ubuntu 22.04
    • 配置鸿蒙sdk
      • 下载
      • 配置
      • 验证
    • 命令行hello工具
      • 编译
    • 运行hello程序
    • 其它

前言

鸿蒙PC命令行环境搭建,通常借助Ubuntu系统搭建交叉编译环境。这里借助windows系统的wsl完成。

系统环境

这里假定windows系统下的hdc工具已经可以使用,wsl的Ubuntu22.04已经配置成功。如果没有配置,搜索搭建一下。

windows系统搭建好hdc工具

wsl系统环境为Ubuntu 22.04

配置鸿蒙sdk

开源鸿蒙sdk的版本可以通过如下链接下载:
https://repo.huaweicloud.com/openharmony/os/
这里面有很多版本,最新的是6.0.0.1版本。也有根据自己需要下载里面的ohos-sdk-windows_linux-public.tar.gz
当然,也可以使用华为官网发布的command-line-tools for Linux。网址为:最新版本 - 下载中心 - 华为开发者联盟。

下载

这里以下载command-line-tools for Linux为例。

配置

搭建交叉编译环境,需要配置好环境变量,方便编译时使用。
wsl里面,打开~/.bashrc,配置如下环境变量,追加在文件最后面。

exportOHOS_SDK_HOME=$HOME/command-line-tools/sdk/default/openharmony# Native 编译器 (clang/cmake等)exportPATH=$OHOS_SDK_HOME/native/build-tools/cmake/bin:$PATHexportPATH=$OHOS_SDK_HOME/native/llvm/bin:$PATH

验证

重新导入一下.bashrc,使新增加的环境变量生效。

$source~/.bashrc

如果查看clang命令的版本,已经显示OHOS相关的信息,则表示环境变量已经生效。

$ clang --version OHOS(dev)clang version15.0.4(llvm-project 115b628d33dda4da4b17e14ed69dd8b74c058b48)Target: x86_64-unknown-linux-gnu Thread model: posix InstalledDir: /home/yan/command-line-tools/sdk/default/openharmony/native/llvm/bin

命令行hello工具

编译

简单代码如下:

#include <stdio.h> int main() { printf("Hello HarmonyOS from WSL Ubuntu 22.04!\n"); return 0; }

需要明确指定目标架构(Target)和系统根路径(Sysroot):

  • target:虽然常见的鸿蒙设备可能基于aarch64架构,但目标平台是鸿蒙 PC 模拟器,则应设置targetx86_64-linux-ohos,以匹配其x86_64架构和 OpenHarmony 操作系统环境。
  • sysroot:该参数用于告知编译器使用鸿蒙系统提供的头文件和库,而非主机(如 Ubuntu)自带的标准库。通过指定正确的 sysroot 路径,可确保编译出的程序与鸿蒙系统的运行时环境兼容。
$ clang --target=x86_64-linux-ohos --sysroot=$OHOS_SDK_HOME/native/sysroot -D_MUSL_ hello.c -o hello-x86

运行hello程序

模拟器环境是在windows系统上,通过搭建好的hdc工具,发送编译好的hello-x86程序到/data/local/tmp/目录。添加可执行权限,程序就可以运行了。

其它

在鸿蒙系统中,/data/local/tmp目录虽然可以临时存放可执行程序(例如一个简单的hello程序),且运行基本不受限制,但其权限非常受限。若程序功能较为复杂(如涉及系统调用、文件访问或网络通信等),这种方式往往无法满足需求。

此外,大多数为 Linux 重新适配的工具即使成功编译为 HNP(HarmonyOS Native Package)格式,也无法直接安装运行,必须进一步封装为 HAP(HarmonyOS Ability Package)并通过系统标准流程部署,才能获得必要的权限和运行环境

http://www.cnnetsun.cn/news/42880.html

相关文章:

  • 编辑相似度(Edit Similarity):原理、演进与多模态扩展
  • 【深度解析】MiniCPM 2.0:端侧大模型的技术性进展与技术革新
  • ClickHouse 快速入门
  • 基于SpringBoot的人事管理系统设计与实现
  • 【论文阅读】Multi-modal Spatial Clustering for Spatial Transcriptomics Utilizing High-resolution Histology
  • Day36官方文档的阅读
  • Windows右键菜单终极优化指南:让你的右键菜单重获新生
  • ZTools v1.1.2:桌面应用启动器与搜索工具
  • Flutter Android APK 重命名 签名验证操作
  • MarchingCubes 网格数据体素化并提取等值面
  • 基于SpringBoot的餐厅推荐系统 计算机毕业设计选题 计算机毕设项目 前后端分离 【源码-文档报告-代码讲解】
  • 禁用MinIO后的7种企业级替代方案评测
  • document.querySelector在电商网站中的5个实战应用
  • 企业级应用:OpenJDK1.8在生产环境中的部署实践
  • Homebrew实战:从安装到开发环境搭建全流程
  • 企业级Git仓库SSH连接安全最佳实践
  • Day12 贝叶斯优化可视化和随机森林的解读
  • 数据湖不是湖,是江湖:Delta Lake / Iceberg / Hudi 到底该选谁?
  • 告别开题报告模板拼凑!虎贲等考 AI 智能生成,让选题逻辑从模糊想法变身可执行研究计划
  • 【LeetCode刷题】跳跃游戏
  • 鸿蒙PC UI控件库 - PasswordInput 密码输入框详解
  • day37简单的神经网络@浙大疏锦行
  • 【水果识别】基于机器视觉苹果和香蕉的成熟度和大小检测附Matlab代码
  • JAVA的平凡之路——此峰乃是最高峰JVM-附加小菜-04
  • 【电力系统】电力系统优化与控制热液调度附Matlab代码和报告
  • 基于6种最新算法(小龙虾优化算法COA、MSA、RTH、NOA、BFO、SWO)求解机器人路径规划研究附Matlab代码
  • Golang实战:构建综合多头(逾期+反欺诈)风险查询的高性能客户端
  • 【TSP问题】基于蜣螂算法DBO和改进的蜣螂算法FADBO求解旅行商TSP问题(可根据自己的经纬度设置自己想要到达的地区)附Matlab代码
  • 【太阳能学报EI复现】基于粒子群优化算法的风-水电联合优化运行分析附Matlab代码
  • 数据结构:二叉排序树,平衡二叉树,红黑树的介绍