원클릭으로
cangjie-macro-build
仓颉宏包编译构建指南。当需要了解宏包的 cjc 编译命令(--compile-macro)、cjpm 项目结构与 cjpm.toml 配置、宏模块依赖管理、并行宏展开、调试模式等构建相关内容时,应使用此 Skill。
Codex 또는 Claude로 설치 이 Prompt를 복사해 Codex, Claude 또는 다른 어시스턴트에 붙여 넣으면 Skill 페이지를 검토하고 설치를 진행할 수 있습니다.
메뉴
仓颉宏包编译构建指南。当需要了解宏包的 cjc 编译命令(--compile-macro)、cjpm 项目结构与 cjpm.toml 配置、宏模块依赖管理、并行宏展开、调试模式等构建相关内容时,应使用此 Skill。
Codex 또는 Claude로 설치 이 Prompt를 복사해 Codex, Claude 또는 다른 어시스턴트에 붙여 넣으면 Skill 페이지를 검토하고 설치를 진행할 수 있습니다.
SOC 직업 분류 기준
当需要构建鸿蒙应用项目时,使用此 Skill 执行构建流程。此 Skill 包含完整的构建命令、构建流程说明、构建失败处理流程。构建脚本会自动执行依赖安装、仓颉预编译、资源生成、编译、打包等步骤。
在鸿蒙应用(Cangjie)开发中,当需要使用 stdx 拓展库(如 crypto、encoding、net、log、actors 等),或在构建/链接阶段出现 stdx 相关错误时,使用此 Skill 获取/解压 stdx 包,并指导在 entry/cjpm.toml 中正确配置 bin-dependencies.path-option。
在进行仓颉工程或鸿蒙应用开发时的第一步,应该优先读取该SKILL,用来确定后续的开发步骤。
仓颉语言内置注解。当需要了解仓颉 SDK 提供的内置注解(@sourcePackage/@sourceFile/@sourceLine/@When/@FastNative/@Frozen/@Attribute/@Deprecated)的用途、语法和最优实践时,应使用此 Skill。
仓颉语言附录参考。当需要查阅仓颉语言的关键字列表、运算符优先级与结合性、运算符重载函数签名、运行时环境变量配置、包兼容性规则、TokenKind枚举类型时,应使用此 Skill。
仓颉标准库 Array 类型详细指南。当需要了解 Array 的构造、元素访问、切片、拼接、查找、排序、拷贝、反转、映射、扁平化等操作的完整 API 和用法时,应使用此 Skill。
| name | cangjie-macro-build |
| description | 仓颉宏包编译构建指南。当需要了解宏包的 cjc 编译命令(--compile-macro)、cjpm 项目结构与 cjpm.toml 配置、宏模块依赖管理、并行宏展开、调试模式等构建相关内容时,应使用此 Skill。 |
macro package 声明的包中public;其他声明为包内部可见宏包须先编译,使用 --compile-macro 标志,然后编译调用包并链接宏包。
# 步骤 1:编译宏包
cjc macros/m.cj --compile-macro --output-dir ./target
# 步骤 2:编译调用包并链接宏包
cjc src/demo.cj -o demo --import-path ./target
当宏包依赖其他非宏包时,须按依赖顺序编译:
cjc A.cj --compile-macro # 编译宏包
cjc B.cj --output-type=dylib -o libB.so # 编译依赖库(Linux)
cjc C.cj --compile-macro -L. -lB # 编译带依赖的宏包
cjc main.cj -o main -L. -lB # 编译主程序
| 平台 | 动态库扩展名 | 示例 |
|---|---|---|
| Linux | .so | cjc B.cj --output-type=dylib -o libB.so |
| macOS | .dylib | cjc B.cj --output-type=dylib -o libB.dylib |
| Windows | .dll | cjc B.cj --output-type=dylib -o B.dll |
my_project/
├── cjpm.toml # 主项目配置
├── src/
│ └── main.cj # 调用宏的代码
└── macros/ # 宏模块
├── cjpm.toml # 宏模块配置
└── src/
└── my_macros.cj # 宏定义
宏模块的 cjpm.toml 必须设置 compile-option = "--compile-macro":
[package]
cjc-version = "0.55.3"
name = "macros"
version = "1.0.0"
output-type = "static"
compile-option = "--compile-macro"
在主项目 cjpm.toml 中以本地路径依赖方式引用宏模块:
[package]
cjc-version = "0.55.3"
name = "my_project"
version = "1.0.0"
output-type = "executable"
[dependencies]
macros = { path = "./macros" }
cjpm build # 自动按依赖顺序编译宏包和主包
cjpm run # 构建并运行
cjpm test # 运行测试
当项目包含多个宏模块时,可以组织为:
my_project/
├── cjpm.toml
├── src/
│ └── main.cj
├── macro_a/
│ ├── cjpm.toml # compile-option = "--compile-macro"
│ └── src/
│ └── macro_a.cj
└── macro_b/
├── cjpm.toml # compile-option = "--compile-macro"
└── src/
└── macro_b.cj
主项目 cjpm.toml:
[dependencies]
macro_a = { path = "./macro_a" }
macro_b = { path = "./macro_b" }
--parallel-macro-expansion 标志启用并行宏展开cjpm.toml 中 compile-option 添加:[package]
compile-option = "--parallel-macro-expansion"
--debug-macro 生成 .macrocall 临时文件显示完全展开的宏代码# cjc 直接使用
cjc src/demo.cj --debug-macro --import-path ./target
# cjpm 中通过 compile-option 使用
# cjpm.toml
[package]
compile-option = "--debug-macro"
--import-path 未正确指向宏包输出目录--compile-macro 编译宏包,再编译调用包。使用 cjpm 时工具会自动处理编译顺序public