鸿蒙PC开发笔记三:HarmonyOS PC 命令行开发和Helloworld

HDC(HarmonyOS Device Connector)是OpenHarmony提供的命令行工具,用于连接和调试设备(如真机或模拟器)。文章最后附上其基本使用方法和常见命令。‌

第一篇安装好了sdk,但是没有对系统进行配置,所以执行sdk相关命令找不到路径,这篇做个配置,再用命令行写个简单的Helloworld程序。

首先,配置sdk,编辑~/.bash_profile加入到shell PATH,

复制代码
# Openharmony SDK 路径配置
export OHOS_SDK_HOME=~/ohos-sdk
 
# hdc toolchain加入 PATH (用于连接设备)
export PATH=$OHOS_SDK_HOME/toolchains:$PATH
 
# 将 Native 编译器 (clang/cmake) 加入 PATH (用于编译代码)
export PATH=$OHOS_SDK_HOME/native/build-tools/cmake/bin:$PATH
export PATH=$OHOS_SDK_HOME/native/llvm/bin:$PATH

source ~/.bash_profile后应该命令生效,下面做几个简单测试

最后,我们手写一个helloworld程序,有一个入门认识:

cpp 复制代码
#include <stdio.h>
int main() {
    printf("Hello HarmonyOS from MacOS!\n");
    return 0;
}

交叉编译一下(target参数意思明确,sysroot参数告诉编译器去哪里找鸿蒙的头文件和库,

__MUSL__ 是一个在 OpenHarmony 交叉编译环境中常见的预定义宏,用于标识目标系统使用的是 ‌musl‌ C 库,而非 glibc。这在配置编译环境时至关重要,因为 musl 和 glibc 在系统调用、ABI 等方面存在差异,需要不同的编译选项来适配。‌)

完成后可以使用命令发送到真机测试

cpp 复制代码
hdc file send ./helloworldohos /data/local/tmp/

hdc shell
# 连接设备终端
chmod +x /data/local/tmp/helloworldohos
./data/local/tmp/main_ohos

因为没有真机,所以本地运行一下自然报错格式不正确。

获取帮助信息

  • ‌查看全局帮助‌:运行 hdc helphdc -h,显示所有可用命令的概要说明。‌
  • ‌查看版本信息‌:使用 hdc versionhdc -v,输出工具版本号(如 Ver: 3.2.0b)。‌

常用命令示例

  • ‌列出连接的设备‌:
    hdc list targets 显示当前通过USB或无线连接的设备列表(如设备ID、状态)。
    添加 -v 参数(如 hdc list targets -v)可查看详细设备信息(如型号、传输协议)。‌
  • ‌连接指定设备‌:
    使用 -t 参数后跟设备标识符(如设备SN号或IP:端口),例如:
    hdc -t emulator-5554 shell 进入该设备的命令行交互界面。‌
  • ‌文件传输‌:
    hdc file send <本地文件路径> <设备路径> 将文件上传到设备;
    hdc file recv <设备路径> <本地路径> 从设备下载文件。‌
  • ‌端口转发‌:
    hdc fport <本地端口>:<设备端口> 将主机端口转发到设备端口(如 hdc fport tcp:1234:tcp:1080)。‌
  • ‌重启设备‌:
    hdc target boot 重启连接的设备。‌

IDE环境配置注意事项

  • ‌路径配置‌:确保 hdc 工具所在目录(如 DevEco Studio/sdk/default/openharmony/toolchains 或自定义路径)已添加到系统环境变量 PATH 中,否则需在命令前指定完整路径。‌
  • ‌服务管理‌:若命令异常,可尝试重启服务:
    hdc start -r(重启服务)或 hdc kill -r(终止服务后重启)。‌
相关推荐
lbb 小魔仙7 小时前
【HarmonyOS实战】OpenHarmony + RN:自定义 useFormik 表单处理
react native·harmonyos
果粒蹬i7 小时前
【HarmonyOS】DAY7:鸿蒙跨平台 Tab 开发问题与列表操作难点深度复盘
华为·harmonyos
王码码20357 小时前
Flutter for OpenHarmony 实战之基础组件:第二十七篇 BottomSheet — 动态底部弹窗与底部栏菜单
android·flutter·harmonyos
小镇敲码人7 小时前
探索CANN框架中TBE仓库:张量加速引擎的优化之道
c++·华为·acl·cann·ops-nn
JustDI-CM7 小时前
AI学习笔记-提示词工程
人工智能·笔记·学习
爱写bug的野原新之助7 小时前
加密摘要算法MD5、SHA、HMAC:学习笔记
笔记·学习
ITUnicorn8 小时前
【HarmonyOS6】ArkTS 自定义组件封装实战:动画水杯组件
华为·harmonyos·arkts·鸿蒙·harmonyos6
小镇敲码人8 小时前
探索华为CANN框架中的ACL仓库
c++·python·华为·acl·cann
全栈探索者8 小时前
@Component + struct = 你的新函数组件——React 开发者的鸿蒙入门指南(第 2 期)
react·harmonyos·arkts·前端开发·deveco studio·鸿蒙next·函数组件
廖松洋(Alina)9 小时前
【收尾以及复盘】flutter开发鸿蒙APP之成就徽章页面
flutter·华为·开源·harmonyos·鸿蒙