仓颉编程语言:cjpm 介绍

(仓颉) 仓颉语言入门 仓颉-鸿蒙原生应用编程语言-华为开发者联盟 (huawei.com)初识仓颉语言-仓颉编程语言开发指南-学习仓颉语言 - 华为HarmonyOS开发者 (huawei.com)【原创】仓颉编程语言入门教程楼主作为主语言C++,副语言python。仅做基础的入门了解。本文不做任何格外的语法说明,仅在代码中用简短的注释辅助。下文均为教学视频中的实例demo(上方的视频也出现在官网的视频一栏中)。本文所有代码均在下方的在线编译器中进行尝试。除了最后两章,9,10无法进行单文件操作其余均有验证。 阅读详情

CJPM(Cangjie Package Manager) 是仓颉语言的官方包管理工具,用来管理、维护仓颉项目的模块系统,并且提供更简易统一的编译入口,支持自定义编译命令。通过包管理器自动依赖管理实现对引入的多版本三方依赖软件进行分析合并,无需开发者担心多版本依赖冲突问题,大大减轻开发者负担;同时提供基于仓颉语言原生的自定义构建机制,允许开发者在构建的不同阶段增加预处理和后处理流程,实现构建流程可灵活定制,能够满足开发者不同业务场景下的编译构建诉求。

cjpm 基本使用方法

通过 cjpm -h 即可查看主界面,由几个板块组成,从上到下分别是: 当前命令说明、使用示例(Usage)、支持的可用命令(Available subcommands)、支持的配置项(Available options)、更多提示内容。

Cangjie Package Manager

Usage:
  cjpm [subcommand] [option]

Available subcommands:
  init             Init a new cangjie module
  check            Check the dependencies
  update           Update cjpm.lock
  tree             Display the package dependencies in the source code
  build            Compile the current module
  run              Compile and run an executable product
  test             Unittest a local package or module
  clean            Clean up the target directory
  publish          Push a module to the repository
  load             Load a module from the repository
  list             Get module list from the repository
  install          Install a cangjie binary
  uninstall        Uninstall a cangjie binary

Available options:
  -h, --help       help for cjpm
  -v, --version    version for cjpm

Use "cjpm [subcommand] --help" for more information about a command.

cjpm init 用来初始化一个新的仓颉模块或者工作空间。初始化模块时会默认在当前文件夹创建 cjpm.toml 文件,并且新建 src 源码文件夹,在 src 下生成默认的 main.cj 文件。自定义参数初始化功能支持可以通过cjpm init -h 查看。

例如:

输入: cjpm init
输出: cjpm init success

cjpm build 用来构建当前仓颉项目,执行该命令前会先检查依赖项,检查通过后调用 cjc 进行构建。支持全量编译、增量编译、交叉编译、并行编译等,更多编译功能支持可以通过cjpm build -h 查看。通过cjpm build -V 命令可以打印所有的编译过程命令。

例如:

输入: cjpm build -V
输出:
compile package module1.package1: cjc --import-path target -p "src/package1" --output-type=staticlib -o target/release/module1/libmodule1.package1.a
compile package module1: cjc --import-path target -L target/release/module1 -lmodule1.package1 -p "src" --output-type=exe --output-dir target/release/bin -o main

cjpm build success

cjpm.toml 配置文件说明

配置文件 cjpm.toml 用来配置一些基础信息、依赖项、编译选项等内容,cjpm 主要通过这个文件进行解析执行。

配置文件代码如下所示:

[package]
  cjc-version = "0.49.1" # 所需 `cjc` 的最低版本要求,必须
  name = "demo" # 模块名及模块 root 包名,必须
  description = "nothing here" # 描述信息,非必须
  version = "1.0.0" # 模块版本信息,必须
  compile-option = "" # 额外编译命令选项,非必须
  link-option = "" # 链接器透传选项,可透传安全编译命令,非必须
  output-type = "executable" # 编译输出产物类型,必须
  src-dir = "" # 指定源码存放路径,非必须
  target-dir = "" # 指定产物存放路径,非必须
  package-configuration = {} # 单包配置选项,非必须

[workspace] # 工作空间管理字段,与 package 字段不能同时存在
  members = []
  build-members = []
  test-members = []
  compile-option = ""
  link-option = ""
  target-dir = ""

[dependencies] # 源码依赖配置项
  aoo = { version = "1.0.0" } # 导入中心仓依赖
  boo = "1.1.0"  # 导入中心仓依赖
  coo = { git = "xxx",branch = "dev" , version = "1.0.0"} # 导入 `git` 依赖,`version`字段可缺省
  doo = { path = "./pro1" ,version = "1.0.0"} # 导入源码依赖,`version`字段可缺省

[test-dependencies] # 测试阶段的依赖配置项

[ffi.c] # 导入 `c` 库依赖
  clib1.path = "xxx"

[profile] # 命令剖面配置项
  build = {}
  test = {}
  customized-option = {}

[target.x86_64-unknown-linux-gnu] # 后端和平台隔离配置项
  compile-option = "value1" # 额外编译命令选项,适用于特定 target 的编译流程和指定该 target 作为交叉编译目标平台的编译流程,非必须
  link-option = "value2" # 链接器透传选项,适用于特定 target 的编译流程和指定该 target 作为交叉编译目标平台的编译流程,非必须

[target.x86_64-w64-mingw32.dependencies] # 适用于对应 target 的源码依赖配置项,非必须

[target.x86_64-w64-mingw32.test-dependencies] # 适用于对应 target 的测试阶段依赖配置项,非必须

[target.cjvm.bin-dependencies] # 仓颉二进制库依赖,适用于特定 target 的编译流程和指定该 target 作为交叉编译目标平台的编译流程,非必须
  path-option = ["./test/pro0", "./test/pro1"]
[target.cjvm.bin-dependencies.package-option]
  "pro0.xoo" = "./test/pro0/pro0.xoo.cjo"
  "pro0.yoo" = "./test/pro0/pro0.yoo.cjo"
  "pro1.zoo" = "./test/pro1/pro1.zoo.cjo"
鸿蒙HarmonyOS应用开发 | cjpm 在仓颉语言项目中的应用详解 仓颉编程语言是一种高效、模块化的语言,其核心设计目标是为开发者提供一种能够快速编译的编程体验。其编译器cjc和包管理工具cjpm为开发者提供了丰富的工具集成支持,便于管理模块、编译流程和依赖关系。依赖关系通常在cjpm.toml文件中定义。该文件的部分允许开发者定义需要引入的模块,无论是本地模块、远程 Git 仓库,还是从中心仓库获取的第三方库。在这个例子中,local_mod指向本地的目录,而remote_mod则是从指定的 Git 仓库中拉取代码。cjpm在构建时会自动处理这些依赖的解析和安装。 阅读详情

相关推荐

用LTspice仿真CMOS反相器功耗?这份避坑指南能省你3天调试时间

本文详细介绍了如何使用LTspice准确仿真CMOS反相器的功耗,包括动态功耗、短路功耗和静态功耗的测量技巧。通过工程实践指南,帮助电子工程师避开常见陷阱,优化仿真参数设置,提升仿真结果的可靠性,节省调试时间。

w7x8y9z的博客 190

仓颉语言的编译和构建

CJPM(Cangjie Package Manager) 是仓颉语言的官方包管理工具,用来管理、维护仓颉项目的模块系统,并且提供更简易统一的编译入口,支持自定义编译命令。通过包管理器自动依赖管理实现对引入的多版本三方依赖软件进行分析合并,无需开发者担心多版本依赖冲突问题,大大减轻开发者负担;同时提供基于仓颉语言原生的自定义构建机制,允许开发者在构建的不同阶段增加预处理和后处理流程,实现构建流程可灵活定制,能够满足开发者不同业务场景下的编译构建诉求。

程小二的博客 7534

VS Code 配置 LaTeX 写作环境完全指南

本文详细介绍了如何在 VS Code 中配置 LaTeX 写作环境,涵盖了从安装必备组件到高级功能的全面指南。首先,用户需要安装 LaTeX 发行版(如 TeX Live 或 MiKTeX)和 VS Code 插件(如 LaTeX Workshop)。接着,通过修改 settings.json 和 keybindings.json 文件,用户可以自定义编译、查看快捷键等基础配置。文章还提供了高效写作技巧,如使用代码片段和多文件项目管理,并介绍了高级功能如反向同步、公式预览和参考文献管理。此外,针对常见问题(

weixin_70043030的博客 1984

1、仓颉工程基础操作 cjpm

初始化模块时会默认在当前文件夹创建 cjpm.toml 文件,并且新建 src 源码文件夹。如果该模块的产物为可执行类型,则会在 src 下生成默认的 main.cj 文件,并在编译后打印输出 hello world。若已存在 cjpm.toml 文件,或源码文件夹内已存在 main.cj,则会跳过对应的文件创建步骤。CJPM(Cangjie Package Manager) 是仓颉语言的官方包管理工具,用于管理、维护仓颉项目的模块系统,并且提供简易统一的编译入口,支持自定义编译命令。

qq_51355375的博客 1800

STM32实战:5分钟搞定MXL90614红外测温模块的I2C驱动(附完整代码)

本文提供了一份快速集成MLX90614红外测温模块的STM32实战指南。通过详细的软件I2C驱动代码,重点解析了SMBus通信协议、CRC校验及温度数据转换,帮助开发者避开常见陷阱,实现5分钟内完成模块驱动并读取准确温度值。

wasm7browser的博客 354

解析 RABAX during SAPGUI Logon 错误及其解决方案

登录用户关联了初始启动程序,该程序由于未处理的异常导致运行时错误。在 ST22 查看错误的程序名和错误行。修复初始程序代码中的逻辑问题。重新部署修复后的代码。示例代码:防止未处理的异常TRY." 模拟逻辑处理ENDTRY.此代码通过 TRY-CATCH 块捕获潜在错误,避免程序崩溃。是 SAP 系统中常见的运行时错误,其根源可能涉及多个方面,包括用户配置、系统状态、数据库连接和自定义开发等。通过结合 ST22、SM21 等诊断工具,以及完善的代码实践和系统监控,可以有效预防和解决此类问题。

2007 年 ~ 2025 年,深耕 SAP 技术 18 年 1785

「仓颉编程语言」Demo

名之曰「添加租户」。输出 "生成账单:{租户.取('名称')} 应缴 ¥{租金}"剩余欠费:¥{租户.取('欠费')}"租户.设("欠费", 租户.取("欠费") - 金额)输出 "已记录报修:{问题描述}(提交人:{租户名称})"租金 = 租户.取("面积") * 费用单价。输出 "「{名称}」入驻登记完成!租户.设("欠费", 租金)报修单.设("状态", "待处理")输出 "已处理:{报修单.取('问题')}"报修单.设("租户", 租户名称)报修单.设("问题", 问题描述)

keny-大成的博客 1000

使用Qt Creator自带的Qt Designer构造UI界面流程总结

在本文中,我们将总结使用Qt Creator自带的Qt Designer构造UI界面的流程。在对话框中,您可以选择一个控件的信号,然后将其连接到另一个控件的槽。例如,您可以将按钮的点击信号连接到一个槽函数,以响应按钮的点击事件。右键单击窗口设计器中的空白区域,选择适当的布局管理器,如水平布局、垂直布局或网格布局。在Qt Designer中,您可以使用各种预定义的UI控件来设计应用程序的界面。现在,您可以在应用程序的源代码中使用生成的UI界面。在您的源文件中,包含相应的头文件,然后创建一个UI界面的实例。

cl6789的博客 1394

仓颉编程语言 cjpm 项目管理工具实战指南:模块初始化、依赖管理与 cjpm.toml 构建配置详解

`cjpm`(Cangjie Project Manager)是仓颉编程语言的官方项目管理工具,用于管理、维护仓颉项目的模块系统,并提供简易统一的编译入口。本文以 [cjpm 使用指南](https://link.gitcode.com/i/f33885e97e4e1b6d041b071172da83c8) 为核心,结合仓库内 [项目管理工具完整手册](https://link.gitcode.c

gitblog_00422的博客 312

解锁RK3588:内核模块签名与安全启动配置全攻略

RK3588作为一款高性能嵌入式SoC芯片,其内核模块签名与安全启动配置是保障系统安全的核心机制。本文详细介绍了RK3588的芯片特性,重点阐述了安全启动的硬件信任链原理和内核模块签名的实现方法。通过具体步骤演示了从密钥生成、模块签名到验证加载的完整流程,并深入解析了安全启动配置的硬件连接、软件工具准备、密钥烧录等关键环节。此外,还提出了防御旁路攻击和动态信任链扩展等高级安全策略,为RK3588在工业控制、智能安防等高安全要求场景中的应用提供了全面的安全解决方案。

远程部署调试 运行安装 项目调试 二次开发 项目技术新 持续迭代 部分源码免费分享 351

用 SE84 反查 SAP 消息号:弹窗一闪而过也能抓到 Message ID 和 Number 的小技巧

SAP开发技巧:通过消息文本反查Message ID和编号 在SAP开发中,经常遇到系统只显示错误消息文本而缺少技术信息的情况。本文介绍两种实用方法: 使用SE84工具:通过输入带通配符的短文本(如"错误文本")反向查找消息类和编号 直接查询T100表:利用消息文本在T100表中检索完整的消息技术信息 这些技巧特别适用于处理弹窗消息、框架层错误等无法直接获取技术细节的场景。掌握消息ID和编号后,开发者可以更高效地进行问题定位、代码调试和错误处理,尤其在SAP Gateway、RAP等现代

2007 年 ~ 2025 年,深耕 SAP 技术 18 年 375

仓颉编程语言可执行程序运行指南:直接运行与 cjpm run 实战

本文聚焦仓颉(Cangjie)可执行程序的两种典型运行方式——直接运行编译产物与通过 `cjpm run` 一键运行项目,涵盖 Linux、macOS、Windows 三大平台的运行时部署前置条件、产物路径约定、常用命令参数与常见问题排查。读完本文,你将能够独立完成仓颉可执行程序的部署、运行与调试,并在无编译环境的机器上正确配置仓颉运行时(runtime)。 ## 一、运行仓颉可执行程序的前置条

gitblog_01022的博客 190

企业级 Token 中转架构设计:高并发、多模型、费用监控一次搞定

摘要:本文针对企业级AI开发中的多模型接口混乱、高并发稳定性差及Token费用失控等痛点,提出一套2026年企业级Token中转架构解决方案。该方案采用五层分层设计(接入层、网关层、调度层、服务层、存储层),实现多模型统一接口、智能路由、高并发限流容错及精细化成本监控。核心功能包括:异构模型标准化接入、动态路由策略(场景/成本/负载/容灾)、多级限流熔断机制、全链路Token计费与安全防封体系(指纹清洗、IP池隔离)。通过分层解耦与模块化设计,企业可降低50%成本、提升99%稳定性,并避免封号风险。文章还提

远程部署调试 运行安装 项目调试 二次开发 项目技术新 持续迭代 部分源码免费分享 149

仓颉编程语言扩展库(stdx)完全指南:包体系、依赖关系与 cjc/cjpm 集成实践

仓颉编程语言扩展库(stdx)是官方在标准库之外提供的一组面向特定领域的高阶能力集合,涵盖压缩、加解密、网络通信、编码转换、模糊测试、日志与序列化等场景。本篇指南以 [libs/stdx/libs_overview.md](https://link.gitcode.com/i/4de6d92f3fe1c0adc29e51bfe12f3de2) 为主体,系统梳理 stdx 的包全景、二进制产物结构、

gitblog_01072的博客 468

Outlook Express 6 (OE6) for Win7/Win8/Win10

英文版 Outlook Express6.0, 兼容Win7/Win10/WinXP,解压就可用。

VC中sqlite的使用

在VC中对sqlite的使用,实现数据库大批数据的快速插入,读取数据库中的数据在ListCtrl中显示

仓颉编程语言-02-VSCode插件使用:从SDK到cjpm的完整配置指南

仓颉 VSCode 插件装完跑不起来,多半卡在 SDK 路径与 cjpm 工程结构。本文给出可直接复制的 settings.json 配置,覆盖 SDK 路径、cjpm 集成与终端环境变量注入,并附 cjpm.toml 模板与 401、local proxy failed 等报错排查。模型调用层用 TaoToken 统一 Key 与 API 通道,官网 https://taotoken.net/?utm_source=taotoken_aicg_blog_end 可创建 Key 并查看接入文档。

weixin_35307279的博客 59

蓝牙模块HM-10手册

蓝牙模块HM-10手册,该手册对蓝牙模块HM-10进行了详细的介绍和使用方法以及一些AT指令。

Dolphin 模拟器镜像压缩:RVZ 格式 3 个关键参数与完整转换流程

一块 4.3GB 的《塞尔达传说:黄昏公主》ISO,转成 RVZ 后可压到 2GB 出头——这是本文所引实测数据的量级。Dolphin 模拟器的 RVZ 格式就是为这类镜像压缩场景设计的。 ## 一、RVZ 格式的定义与适用边界 RVZ 是 Dolphin 模拟器专有的镜像压缩容器:把光盘按块切分,逐块压缩,并用滞后斐波那契生成器打乱块序,读取时边解压边定位。 - 分块压缩:只读用到的块,随

gitblog_00046的博客 107

jdk-8u144-linux-x64.tar.gz.

该资源为搭建Linux系统Java环境用,资源的后缀为tar.gz格式的压缩包

仓颉语言编程入门:第一个 Windows 下的仓颉应用程序

本文介绍了在Windows平台搭建仓颉编程语言开发环境的完整流程。首先从官网下载安装包,详细说明了exe和zip两种格式的安装方法,并指导配置环境变量。随后演示了编写、编译和运行第一个"你好,仓颉"程序的过程。文章还推荐使用VSCode编辑器进行开发,介绍了安装仓颉插件和配置SDK的步骤。最后展示了如何通过VSCode创建仓颉项目并运行Hello World程序。仓颉语言作为全场景智能编程语言,可应用于多种开发场景,为开发者提供高效便捷的编程体验。

猫哥 的沉淀、积累、总结。天天学习,好好向上...c/c++,嵌入式 linux,Android,HarmonyOS,AIOT) 1925

仓颉语言入门 · 第1课

大家好,从今天开始,我打算系统性地整理一套**仓颉编程语言(Cangjie)**的学习笔记,一边学一边记录,从零开始走到能独立做项目。整个系列会全程在一款轻量级的仓颉桌面 IDE ——中完成,环境配置、写代码、编译运行、断点调试一条龙,尽量少折腾命令行,把精力放在语言本身。本文是系列:装好环境、认识工具链、创建并运行第一个仓颉程序,最后再玩一下断点调试。

weixin_41618057的博客 327

艾尔登法环存档编辑器 ER-Save-Editor 上手指南:三步换机迁移,加点拿装备一次讲清

ER-Save-Editor 是一款图形化的艾尔登法环存档编辑器,兼容 PC 与 PlayStation(Save Wizard 导出)存档,可直接修改 SteamID、属性、物品、装备和游戏进度,适合换机迁移与快速搭建 Build。 ## 一个换电脑的实例 小刘把游戏搬到了新电脑,结果角色选择界面里空空如也——原来 PC 版存档文件中记录了创建它的 SteamID,账号一换,游戏就不认这份存

gitblog_00337的博客 190

仓颉编程语言入门实战指南:从一个社区仓库看懂全流程

仓颉编程语言是面向全场景智能的新一代编程语言,而 CangjieCommunity 正是它的官方社区大本营——工具链版本、贡献流程、学习资源、开源生态都汇聚于此。本文带你以这个仓库为线索,从"它是什么"到"跑通第一个程序"再到"提交第一行代码",一次走完新手入门的完整闭环。 ## 第一章 仓颉编程语言是什么,开源社区又在开源什么 ### 仓颉的核心定位:全场景、智能化、高性能 一句话概括:仓

gitblog_00850的博客 842

三步装好 wuwa-mod:鸣潮 PAK 模组安装与定制指南

想让技能零冷却、跳过坠落伤害、背包里的宝物自动吸进仓库?wuwa-mod 就是干这件事的:仓库里放着一批可直接使用的《鸣潮》PAK 模组(无冷却、上帝模式、击杀光环等),同时给出完整的 AES 密钥与解包、重打包流程,让你能自己动手改参数。 ## 先拿到 AES 密钥:解锁 PAK 文件的前提 🗝️ 鸣潮的资源包用 AES-256 加密保护,密钥的作用就像房屋钥匙——没有它,你既解不开 pa

gitblog_00772的博客 124

仓颉编程语言 Unittest 快速入门:从 `cjc --test` 到 `cjpm test` 的完整单元测试实战指南

本文基于仓颉标准库 `std.unittest` 包(语料库对应文档位于 [unittest_getting_started.md](https://link.gitcode.com/i/f04f7daf55d401fe3e9a2f0329078fc6)),系统讲解仓颉单元测试框架的完整上手路径:从编写一个带 `@Test` / `@Expect` 宏的测试函数,到使用 `cjc --test`

gitblog_00720的博客 8

仓颉编程语言开发指南(下)

文章目录仓颉编程语言开发指南(上)十五、宏1.宏的简介2.Tokens 相关类型和 quote 表达式Token 类型Tokens 类型quote 表达式和插值3.语法节点节点的解析使用解析表达式和声明的函数使用构造函数进行解析节点的组成部分BinaryExpr 案例FuncDecl 案例使用 quote 插值语法节点4.宏的实现非属性宏属性宏嵌套宏宏定义中嵌套宏调用宏调用中嵌套宏调用嵌套宏之间的消息传递5.编译、报错与调试宏的编译和使用并行宏展开diagReport 报错机制使用 --debug-macr

欢迎来到我的学习笔记薄 2994

跟我一起学“仓颉”编程语言-编译和构建

本章为大家详细的介绍了仓颉编程语言里编译与构建的内容。

Cool_foolisher的博客 1792

仓颉编程语言-02-VSCode插件使用

本文主要结束仓颉语言的VScode插件使用与开发

IT从业者的成长历程 1809

仓颉包管理器 cjpm 实战指南:核心命令操作与 cjpm.toml 配置全解析

`CJPM(Cangjie Package Manager)` 是仓颉编程语言的官方包管理工具,承担仓颉项目的模块初始化、依赖管理、统一编译与产物运行等全流程职责。本文以 [cjpm 使用指南](https://link.gitcode.com/i/e5d894defc689fe1e771823126fe97c9) 为核心脉络,结合仓库内完整的 [cjpm 用户手册](https://link.g

gitblog_00891的博客 380
上一篇: 仓颉编程语言:cjc 使用
下一篇: 仓颉编程语言:条件编译
懂你的大海
博客等级 码龄6年 9049粉丝 1381原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值