关键在于将deveco device tool的bin路径(如~/.deveco-device-tool/bin)加入系统path并重启vscode,确保gn、ninja、hc-gen等命令可在内置终端直接调用,否则编译无法启动。

VSCode里怎么让OpenHarmony编译命令真正跑起来
关键不是装插件,而是让gn、ninja、hc-gen这些命令在VSCode终端里能直接调用。DevEco Device Tool安装时会把它们放在~/.deveco-device-tool(Linux/macOS)或%USERPROFILE%\.deveco-device-tool(Windows),但默认不进PATH。
- Linux/macOS:在
~/.bashrc或~/.zshrc里加一行export PATH="$HOME/.deveco-device-tool/bin:$PATH",然后source生效 - Windows:把
%USERPROFILE%\.deveco-device-tool\bin加到系统环境变量PATH,**重启VSCode**(只重启终端不够) - 验证方式:在VSCode内置终端执行
gn --version和ninja --version,有输出才算成功 - 常见错误:
command not found: gn——说明PATH没生效;gn gen failed: no build config——说明当前目录不是OpenHarmony源码根目录或未执行./build.sh初始化
烧录时选HiBurn还是VSCode插件直连
VSCode里用DevEco Device Tool插件点“烧录”按钮,底层调的还是HiBurn,但封装了一层逻辑,容易卡在权限、串口占用或配置路径错误上。实际项目中,**直接用HiBurn.exe更稳**。
- HiBurn必须用管理员权限运行(Windows)或
sudo(Linux),否则无法访问/dev/ttyUSB0等设备节点 - 烧录前确认开发板处于下载模式:Hi3861需按住
BOOT键再上电;STM32系列通常要短接BOOT0引脚 - VSCode插件烧录失败时,先关掉所有串口工具(如SSCOM、MobaXterm),避免
port busy错误 - HiBurn里选的文件必须是
*_allinone.bin(如Hi3861_wifiiot_app_allinone.bin),不是.elf或.hex
Cortex-Debug调试配置里最容易漏掉的三项
装了Cortex-Debug插件不代表能调试,OpenHarmony LiteOS-M的调试链路比裸机复杂,OpenOCD配置稍有偏差就会卡在Target not halted。
-
serverpath必须指向你本地安装的openocd可执行文件,不能只写openocd——Windows下是C:\openocd\bin\openocd.exe,Linux下是/usr/local/bin/openocd -
configFiles要指定对应芯片的.cfg文件,比如STM32F407用interface/stlink-v2.cfg+target/stm32f4x.cfg,Hi3861必须用华为提供的hi3861.cfg(在deveco-device-tool目录下) -
executable字段填的是.elf文件路径,不是.bin;且该文件必须带调试符号(编译时不能加-s或--strip-all)
为什么hdc在VSCode里总连不上设备
hdc(OpenHarmony Device Connector)不是烧录工具,是用于连接已运行OHOS系统的设备做shell交互或hap安装。它连不上,90%是因为设备没起来,而不是VSCode配置问题。
- 先用串口工具(如SSCOM)连
/dev/ttyUSB0(波特率115200),看到OHOS #提示符,才说明系统已启动完成 -
hdc list targets无输出?检查hdc_server进程是否在后台运行——Linux下执行ps aux | grep hdc,没有就手动启动hdc_server & - Windows下
hdc报connection refused,大概率是hdc_server没装或没启动,去deveco-device-tool\tools\hdc目录手动运行hdc_server.exe - VSCode里用Remote-SSH连Ubuntu开发机时,
hdc命令要在远程终端里执行,不能在本地VSCode终端里调用











