首页/新闻资讯/正文详情

仓颉程序跑不通OpenHarmony?先看这一步:运行时库手动部署原理与push-libs.bat完整教程

发布时间:2026/9/24 23:17:31 来源:云帆数科 栏目:资讯中心
仓颉程序跑不通OpenHarmony?先看这一步:运行时库手动部署原理与push-libs.bat完整教程
仓颉程序跑不通OpenHarmony先看这一步运行时库手动部署原理与push-libs.bat完整教程【免费下载链接】OpenHarmony在 OpenHarmony 开发板上运行仓颉程序项目地址: https://gitcode.com/Cangjie/OpenHarmony在 OpenHarmony 开发板上运行仓颉程序时最常见的翻车原因就是仓颉运行时库Cangjie Runtime Libraries没有部署到开发板。这篇教程讲清楚运行时库手动部署的原理并带你用 push-libs.bat 脚本三步完成部署让仓颉程序在开发板上顺利跑起来。为什么仓颉程序跑不通缺的是运行时库仓颉是一门相对较新的编程语言它的可执行文件就像只装了业务逻辑的壳——运行时需要一整套libcangjie-*.so动态库运行时、标准库、加密、网络等支撑。关键点在于当前 OpenHarmony 系统镜像中还没有内置仓颉运行时。也就是说你编译出的仓颉 ARM64 可执行文件本身没有问题但直接推送到开发板运行系统找不到libcangjie-runtime.so等依赖库程序自然跑不起来。所以在编译和运行任何仓颉程序之前第一步永远是把仓颉 ARM 运行时库手动推送到开发板的/system/lib64目录。这就是本教程要解决的核心问题。环境准备确认这 3 件事在动手之前先确认本地环境满足以下三个条件✅DevEco Studio 仓颉插件这套工具链提供支持交叉编译的仓颉编译器cjc编译到 ARM64 目标平台✅开发板已连通在电脑终端执行hdc shell能进入开发板系统环境✅hdc 可用如果没有单独安装 hdc 套件可以直接引用 DevEco 自带的Windows 上一般位于C:\Program Files\Huawei\DevEco Studio\sdk\default\openharmony\toolchains目录把它配置到Path环境变量中即可。在 DevEco Studio 底部的终端中执行cjc -v能看到编译器版本信息说明工具链就绪push-libs.bat 完整教程3 步部署仓颉运行时库部署工作被封装在项目根目录的 push-libs.bat 脚本中它的逻辑其实只有三步第 1 步把开发板根分区重新挂载为可写hdc shell mount -o rw,remount /开发板的/system 分区默认是只读的不先重新挂载后面的文件推送会直接失败。第 2 步输入仓颉 ARM 运行时库路径运行脚本后会提示你输入运行时库的完整路径Path of Cangjie Runtime:按默认配置DevEco 的仓颉开发环境中运行时库一般存放在用户目录下的~/.cangjie-sdk/5.0/cangjie/compiler/runtime/lib/linux_ohos_aarch64_llvm 提示路径末尾不要漏掉linux_ohos_aarch64_llvm这一段它是 OpenHarmony ARM64 平台专属的库目录。第 3 步批量推送动态库到 /system/lib64脚本用循环遍历该目录下的所有文件逐个执行hdc file send推送到开发板的/system/lib64路径for %%F in (%target%\*) do ( hdc file send %%~fF /system/lib64 )执行完毕后几十上百个libcangjie-*.so文件runtime、std、crypto、net 等就全部就位了。验证部署/system/lib64 里能看到 cangjie 库推送完成后可以在开发板上执行ls /system/lib64 | grep cangjie检查看到libcangjie-runtime.so、libcangjie-std-core.so等文件说明运行时库部署成功 ✅编译并运行仓颉程序运行时库就位后整个流程就顺了交叉编译启动 DevEco Studio借用仓颉工程的底部命令行窗口该环境中的cjc支持交叉编译。项目把复杂的交叉编译参数封装在 cjc-arm64.bat 中需按你的系统修改其中的HOME变量之后就可以把它当作普通的cjc命令使用推送并运行执行 test/test.bat 脚本输入可执行文件名它会自动把文件推送到/system/bin、添加可执行权限、运行并在执行后删除一条命令完成整个测试。仓库中还附带了示例仓颉代码test/forin.cj输出农历各月干支和 test/chat.cj调用大模型对话都可以拿来验证你的部署是否成功。常见问题 FAQQ推送时报错、文件没有成功传到开发板先确认第 1 步的mount -o rw,remount /是否执行成功只读分区上所有写操作都会被拒绝。Q部署一次就够了吗重启还要再推吗运行时库写入的是 system 分区重新挂载后写入是持久的开发板重启无需重新推送只有重新烧录系统镜像后才需要再部署一次。Q运行时库版本怎么选保持与cjc编译器版本配套即可同属.cangjie-sdk目录下的同一版本避免混用不同 SDK 的库文件。相关文件文件说明README.md项目完整说明push-libs.bat运行时库部署脚本本文主角cjc-arm64.batARM64 交叉编译封装脚本test/test.bat推送、运行、清理一条龙测试脚本test/forin.cj / test/chat.cj示例仓颉程序按照部署运行时库 → 交叉编译 → 推送运行这个顺序走下来仓颉程序跑不通 OpenHarmony 的问题基本都能迎刃而解。【免费下载链接】OpenHarmony在 OpenHarmony 开发板上运行仓颉程序项目地址: https://gitcode.com/Cangjie/OpenHarmony创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考

相关推荐

钢筋计数数据集制作与YOLOv8训练避坑全指南
钢筋计数数据集制作与YOLOv8训练避坑全指南

简介:这份面向钢筋计数算法开发的VOC格式标注数据集,主要服务于建筑工地钢筋清点、智慧物料管理以及目标检测模型训练等场景,适合计算机视觉初学者与应用型研发人员。完整数据集因单文件大小限制被拆分,当前压缩包为训练集标注部分… · 2026/9/24 23:17:25

前工控时代:机械控制中的确定性逻辑与工程哲学
前工控时代:机械控制中的确定性逻辑与工程哲学

1. 为什么“前工控时代”不是技术空白期,而是精密机械思维的奠基时刻很多人一听到“工业控制”,脑子里立刻跳出PLC、DCS、HMI这些带屏幕和代码的现代设备。但如果你翻开工厂老技师的泛黄笔记,或者拆开一台1920年代德国产蒸汽锅炉的安全联锁阀… · 2026/9/24 23:17:18

工业自动化设备保护与可靠性设计:从断路器选型到PLC安全互锁的实战指南
工业自动化设备保护与可靠性设计:从断路器选型到PLC安全互锁的实战指南

设备保护这块,很多人以为就是断路器加继电器、出故障跳闸就完事。真正在产线上做过项目、倒过班、半夜被电话叫起来处理故障的人,心里都清楚——可靠性和保护根本不是选几个元件那么简单,它是一套从设计、选型、调试到运维都贯穿始终的体系&a… · 2026/9/24 23:17:18

LabVIEW调用周立功USBCAN-2E/U实现CAN通信完整指南
LabVIEW调用周立功USBCAN-2E/U实现CAN通信完整指南

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views … · 2026/9/25 1:01:14

从Cortex-M迁移到RISC-V:选型、工具链与避坑实战指南
从Cortex-M迁移到RISC-V:选型、工具链与避坑实战指南

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views … · 2026/9/25 1:01:14

低成本实用开源项目推荐:办公、运维、AI与嵌入式全场景指南
低成本实用开源项目推荐:办公、运维、AI与嵌入式全场景指南

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views … · 2026/9/25 1:01:14

wpcap.dll缺失真相:WinPcap停更后的驱动兼容性解决方案
wpcap.dll缺失真相:WinPcap停更后的驱动兼容性解决方案

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views … · 2026/9/25 1:01:14

C++里次方怎么算?详解^异或、e科学计数法与幂运算陷阱
C++里次方怎么算?详解^异或、e科学计数法与幂运算陷阱

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views … · 2026/9/25 1:01:14

KEPServerEX西门子PLC数据采集实战:5分钟搭建S7-1200/1500采集通道
KEPServerEX西门子PLC数据采集实战:5分钟搭建S7-1200/1500采集通道

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views … · 2026/9/25 1:01:02

数值优化(Numerical Optimization)学习系列-03-共轭梯度方法(Conjugate Gradient)
数值优化(Numerical Optimization)学习系列-03-共轭梯度方法(Conjugate Gradient)

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views … · 2026/9/25 1:00:31

创维E900V22D刷机全攻略:S905L3SB芯片兼容性解析与救砖实战
创维E900V22D刷机全攻略:S905L3SB芯片兼容性解析与救砖实战

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views … · 2026/9/25 1:00:31

MQTT协议原理与Broker服务器搭建实战:从Mosquitto到EMQX
MQTT协议原理与Broker服务器搭建实战:从Mosquitto到EMQX

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views … · 2026/9/25 1:00:37

了解更多?预约专属演示

我们的顾问将为您一对一讲解产品与方案

企业微信二维码