1.1.1 第一个仓颉程序
欢迎来到Cangjie编程语言的世界!本教程将手把手带你编写并运行第一个仓颉程序。即使你之前没有任何编程经验,也不用担心——我们会从最基础的操作开始讲解。
准备工作
在开始之前,你需要准备两样东西:
1.1.2 什么是"编译器"?
计算机只能理解二进制(0 和 1),看不懂我们写的 println("Hello, World") 这种代码。编译器就像一个"翻译官",把你写的代码翻译成计算机能执行的程序。
所以,写仓颉程序的流程就是:
你写代码 (.cj 文件) → 编译器 (cjc) 翻译 → 可执行程序 → 运行看结果
1.1.3 方法一:直接用 cjc 编译器(最简方式)
这个方法步骤最少,适合想快速体验"Hello World"的同学。
第 1 步:创建项目文件夹
在你的电脑上任意位置创建一个新文件,名字随意,比如叫 hello.cj。(一定要有.cj后缀)
.cj是仓颉源码文件的扩展名,就像 Word 文档的扩展名是.docx一样。
文件夹名字建议用英文,避免一些工具对中文路径支持不佳。
第 2 步:打开源码文件
用 VS Code(或记事本)打开 hello.cj。
第 3 步:编写代码
在 hello.cj 中输入以下代码:
main() {
println("Hello, World")
}
代码解读(看不懂没关系,先有个印象):
main()—— 程序的入口,运行程序时会从这里开始执行。println(...)—— 是一个"打印"函数,作用是把括号里的内容显示在屏幕上。"Hello, World"—— 要显示的文字,用双引号包裹。- 花括号
{ }—— 表示main()函数要执行的代码范围。
第 4 步:编译代码
打开终端,使用 cd 命令切换到 hello.cj 所在的文件夹:
cd 你存放hello.cj的路径
如果你把文件夹放在了桌面,路径一般是 C:\Users\你的用户名\Desktop。
在 VS Code 中,可以直接右键文件夹选择"在终端中打开",省去 cd 的步骤。
然后在终端中输入以下命令进行编译:
cjc hello.cj -o hello
这条命令是什么意思?
cjc—— 调用仓颉编译器hello.cj—— 告诉编译器要编译哪个文件-o hello—— 指定编译后输出的可执行文件叫hello
如果你是 Windows 系统,建议在 hello 后面加上 .exe,即:
cjc hello.cj -o hello.exe
如果编译成功,终端不会显示错误信息,并且文件夹里会多出一个可执行文件(hello 或 hello.exe)。
第 5 步:运行程序
编译成功后,在终端中输入:
# Windows 系统
hello.exe
# macOS / Linux 系统
./hello
你会看到屏幕上输出:
Hello, World
🎉 恭喜!你写并运行了第一个仓颉程序!
1.1.4 方法二:使用 cjpm 项目管理工具(推荐)
在实际开发中,我们几乎不会直接用 cjc 编译单个文件,而是使用仓颉的项目管理工具 cjpm(Cangjie Project Manager)。
cjpm 可以帮助你:
- ✅ 快速创建项目模板
- ✅ 自动管理编译和运行
- ✅ 后续还能管理依赖包
下面我们用 cjpm 来创建同样的"Hello World"程序。
第 1 步:创建并初始化项目
创建一个新文件夹,比如叫 demo,用 VS Code 打开它。
然后在终端中输入:
cjpm init
执行成功后,终端会提示 cjpm init success。此时 cjpm 会在当前目录下自动生成项目结构:
demo # 项目根文件夹
├── cjpm.toml # 项目的配置文件(类似身份证)
└── src # 存放源码的文件夹
└── main.cj # 默认生成的源码文件(程序入口)
看到 cjpm.toml 你可能会好奇它是什么——简单来说,它记录了你的项目叫什么名字、用哪个版本等信息。后续文章会详细介绍,现在你只需要知道它是由 cjpm init 自动生成的就行。
第 2 步:打开源码文件看看
打开 src 文件夹下的 main.cj,里面已经有 cjpm 帮你写好的示例代码:
package demo
main(): Int64 {
println("hello world")
return 0
}
和之前直接用 cjc 的代码相比,这里多了几样东西:
| 新内容 | 说明 | 类比 |
|---|---|---|
package demo |
声明这个文件属于 demo 包(可以理解为"这个文件是 demo 项目的一部分") |
就像班级里的每个同学属于某个班级一样 |
main(): Int64 |
这里的 : Int64 表示 main() 函数会返回一个整数 |
就像"我做完事情后会告诉你一个数字结果" |
return 0 |
返回数字 0 给操作系统,表示程序正常结束 | 相当于"报告,任务完成,一切正常!" |
对于现在的你来说,可以暂时忽略package demo、Int64和return 0,只需要知道:
-main()是程序开始执行的地方
-println(...)是打印内容到屏幕上
其余的内容在后面文章中都会学到。
第 3 步:编译并运行
在终端中输入一条命令即可完成编译 + 运行:
cjpm run
你会看到屏幕上输出:
hello world
这里输出的是 hello world(小写),因为 cjpm 生成的示例代码用的是小写。如果你想改成 Hello, World(大写),可以直接编辑 main.cj 中的 println 内容。
🎉 又成功了!现在你已经掌握了两种运行仓颉程序的方法。
1.1.5 两种方法对比
| 对比项 | 方法一:cjc 直接编译 | 方法二:cjpm 项目管理 |
|---|---|---|
| 适合场景 | 快速测试单个文件 | 正式项目开发 |
| 命令数量 | 两步:编译 → 运行 | 一步:cjpm run |
| 项目结构 | 手动管理 | 自动生成 |
| 后续扩展 | 需要自己配置 | 支持包管理、依赖等 |
对于本教程后面的文章,建议使用 cjpm 方式创建项目,更接近真实开发流程。
1.1.6 动手试一试 ✏️
试着修改 main.cj 中的代码,把 hello world 改成你自己的名字,比如:
main(): Int64 {
println("你好,我是牢大!")
return 0
}
然后再次运行 cjpm run,看看屏幕上是不是输出了你修改的内容?
1.1.7 常见问题(小白看这里 👀)
Q1:终端提示"cjc 不是内部或外部命令"
原因:编译器没有安装,或者安装后没有配置环境变量。
解决方法:
- 检查是否已经安装了仓颉编译器
- 如果已安装,尝试重启终端或重启电脑
- 如果还是不行,请参考官方文档的环境变量配置说明
Q2:编译时报错,提示语法错误
原因:代码可能有拼写错误,比如全角符号、漏了括号等。
解决方法:
- 检查代码中的括号
()和花括号{}是否成对出现 - 检查双引号
""是否为英文半角符号(中文引号""不行) - 检查是否有单词拼写错误,比如
println写成了printl
Q3:运行程序后窗口一闪而过
原因:程序执行完就自动退出了,这是正常现象。
解决方法:如果是在 VS Code 终端中运行,输出会保留在终端里,可以慢慢看。
1.1.8 总结
| 知识点 | 内容 |
|---|---|
| 源码文件 | 以 .cj 结尾,里面写仓颉代码 |
| 入口函数 | main() 是程序开始执行的起点 |
| 打印输出 | println("内容") 可以把内容显示在屏幕上 |
| 编译命令 | cjc 文件名.cj -o 输出名 |
| 运行命令 | cjpm run(推荐) |
| 编译器作用 | 把人类写的代码翻译成计算机能执行的程序 |
下一步 → 学习仓颉的注释,给你的代码添加说明文字!
