从 0 开始安装和运行 Cangjie (仓颉)
标准方法
参照 配置开发环境 的描述,下载 Cangjie for DevEco Studio 插件 DevEco Studio NEXT Developer Beta2-Cangjie Plugin(5.0.3.500)。然后在 DevEco Studio NEXT Developer Beta2 中从本地磁盘安装插件,选择下载好的 "devecostudio-cangjie-plugin-windows-5.0.3.500.zip" 安装。完成后即可直接在 DevEco 中使用。
手动安装
从上述网站下载插件后,解压其中的 "harmonyos-cangjie-sdk-windows.zip",得到以下目录 (部分文件和层级省略):
cangjie ├---build | ├---linux_ohos_aarch64_llvm | └---x86_64-w64-mingw32 ├---compiler | ├---bin | ├---lib | ├---modules | ├---runtime | ├---third_party | └---tools └---jslibs-loader | └---lib └---musl └---usr
将解压出来的目录 (包括 cangjie
) 移动到一个专门的位置,比如: "C:\Users\zhongdongy\.cangjie-sdk\5.0\" 下。这个方式和使用插件安装没有区别。
安装完成后,添加以下环境变量:
CANGJIE_HOME
:C:\Users\zhongdongy\.cangjie-sdk\5.0\cangjie\compiler
PATH
下增加:C:\Users\zhongdongy\.cangjie-sdk\5.0\cangjie\compiler\runtime\lib\windows_x86_64_llvm
C:\Users\zhongdongy\.cangjie-sdk\5.0\cangjie\compiler\lib\windows_x86_64_llvm
C:\Users\zhongdongy\.cangjie-sdk\5.0\cangjie\compiler\bin
C:\Users\zhongdongy\.cangjie-sdk\5.0\cangjie\compiler\tools\bin
C:\Users\zhongdongy\.cangjie-sdk\5.0\cangjie\compiler\tools\lib
C:\Users\zhongdongy\.cjpm\bin
运行第一个 Cangjie 应用程序
在工作目录中间一个 server.cj
文件,内容如下:
import net.http.* func start_server(): Unit { let server = ServerBuilder() .addr("0.0.0.0") .port(8080) .build() server.distributor.register("/hello", { http_context => http_context.responseBuilder.body("Hello Cangjie!") }) server.serve() } main(): Unit { let fut: Future<Unit> = spawn { start_server() } fut.get() }
这段代码就是启动一个新线程,创建 HTTP 服务器,监听 8080
端口上来自所有网络的请求,然后对于 URL Path 为 /hello
的请求,响应一个字符串 "Hello Cangjie!"
。
随后在同目录下执行构建命令:
cjc --output server.exe server.cj
此时目录中会出现三个文件:
default.bchir2
: 编译产物中的二进制文件,具体作用暂时不详default.cjo
: 编译的目标文件server.exe
: 编译产生的可执行程序
运行 server.exe
,然后在浏览器访问 "http://127.0.0.1:8080" 可以看到如下的内容:
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 阿里最新开源QwQ-32B,效果媲美deepseek-r1满血版,部署成本又又又降低了!
· 单线程的Redis速度为什么快?
· SQL Server 2025 AI相关能力初探
· AI编程工具终极对决:字节Trae VS Cursor,谁才是开发者新宠?
· 展开说说关于C#中ORM框架的用法!