OpenHarmony:基于 OpenHarmony 生态的仓颉程序运行环境配置项目

在 OpenHarmony 开发板上运行仓颉程序

分支1Tags0
文件最后提交记录最后更新时间
1 年前
1 年前
1 年前
1 年前
1 年前

在 OpenHarmony 开发板上运行仓颉程序

环境准备

1、确保已安装 DevEco + 仓颉插件,这套工具链支持将仓颉代码交叉编译到 ARM64 目标,并支持在 OpenHarmony 平台运行。

仓颉鸿蒙开发套件申请和安装请参考社区主页指导:https://gitcode.com/Cangjie

2、确保开发板可以连通,执行 hdc shell 命令可以进入开发板系统环境。

提示:如果没有单独安装 hdc 套件,也可以引用 DevEco 自带的,例如 Windows 上一般放在 C:\Program Files\Huawei\DevEco Studio\sdk\default\openharmony\toolchains 目录,可以将它配置到 Path 环境变量中

3、当前仓颉运行时还没有合入到系统镜像中,因此需要手动部署运行时库:

  • 复制仓颉 ARM 运行时库的完整路径:按默认选项配置好 DevEco 仓颉开发环境,运行时库一般存放在用户目录下的 .cangjie-sdk\5.0\cangjie\compiler\runtime\lib\linux_ohos_aarch64_llvm 目录
  • 执行当前目录下的 push-libs.bat 脚本,输入以上路径,脚本会将其中的动态库文件,全部推送到开发板 /system/lib64 路径下

编译仓颉程序

启动 DevEco Studio,新建或打开一个仓颉工程,不用关注这个工程本身,只是借用一下底部的命令行窗口,这个环境中引用的 cjc,是支持交叉编译的。

交叉编译命令有点复杂,我们将它封装在 cjc-arm64.bat 文件中:

@echo off

if "%~1"=="" (
    echo 缺少参数
    exit /b 1
)

set HOME=C:/Users/【请替换为您的用户名】/.cangjie-sdk/5.0/cangjie

cjc --target=aarch64-linux-ohos ^
    -B "%HOME%/compiler/third_party/llvm/bin" ^
    -B "%HOME%/musl/usr/lib/aarch64-linux-ohos" ^
    -L "%HOME%/musl/usr/lib/aarch64-linux-ohos" ^
    -L "%HOME%/build/linux_ohos_aarch64_llvm/openssl" ^
    --sysroot "%HOME%/musl" ^
    %*

您需要根据系统信息,更新一下 HOME 变量的值并保存。

随后在 DevEco 命令行环境中,就可以将 cjc-arm64.bat 当作一般的 cjc 命令使用。如编译 D 盘根目录下的 for.cj 文件:

编译产物 for 就是适配 OpenHarmony + ARM64 平台的可执行文件。

运行仓颉程序

执行 test 目录下的 test.bat 脚本,输入需要推送并测试的可执行文件名,它将把目标文件推送到开发板 /system/bin 路径下,添加可执行权限并运行(执行后删除文件)。

当然也可以手动推送和测试,例如:

项目介绍

在 OpenHarmony 开发板上运行仓颉程序

定制我的领域