当前位置: 首页 > news >正文

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

引言

仓颉编程语言是一款面向全场景智能的新一代编程语言,主打原生智能化、天生全场景、高性能、强安全。它广泛应用于鸿蒙原生应用及服务应用等场景,为开发者带来优秀的编程体验。全场景意味着无论是开发 Windows、Linux 的本地应用,Web 服务后台,还是移动端 HarmonyOS,都可以使用仓颉语言。本文将重点介绍如何在 Windows 下搭建仓颉开发环境并编写第一个“Hello, World!”程序。

环境搭建

首先,我们需要下载并安装仓颉语言的开发工具链。以下步骤将引导你完成在 Windows 平台上的安装过程。

下载安装包

访问 仓颉语言官方网站,下载适用于 Windows 平台的安装包。你有两种选择:

  • cangjie-sdk-windows-x64-x.y.z.exe:可执行文件格式,直接运行安装。
  • cangjie-sdk-windows-x64-x.y.z.zip:压缩文件格式,解压后需手动配置。

在这里插入图片描述

安装指导

选择并下载安装包后,根据安装包格式进行操作:

  • exe 格式:直接运行文件,按照安装向导操作即可完成安装。
  • zip 格式:解压文件到指定目录,解压后会得到一个 cangjie 文件夹,其中包含编译器和其他开发工具。

配置环境变量

为了确保仓颉工具链在新的命令行窗口中也能使用,需要配置环境变量。以下是具体步骤:

  1. 在 Windows 搜索框中输入“查看高级系统设置”并打开。
  2. 单击“环境变量”按钮。
  3. 在“用户变量”或“系统变量”区域中,新建一个名为 CANGJIE_HOME 的变量,变量值为 cangjie 文件夹的绝对路径。
  4. 在 Path 变量中,添加以下路径:
    • %CANGJIE_HOME%\bin
    • %CANGJIE_HOME%\tools\bin
    • %CANGJIE_HOME%\tools\lib
    • %CANGJIE_HOME%\runtime\lib\windows_x86_64_llvm

完成以上操作后,仓颉工具链即可在新的命令行窗口中正常使用。

编写第一个仓颉程序

现在我们来编写并运行第一个 Windows 下的仓颉程序。

创建文件

创建一个名为 hello.cj 的文件,输入以下代码:

// hello.cj
main() {println("你好,仓颉")
}

编译与运行

打开命令行窗口,导航到 hello.cj 所在目录并执行以下命令:

cjc hello.cj -o hello.exe

该命令会编译 hello.cj 文件,并生成一个名为 hello.exe 的可执行文件。接下来,运行生成的 hello.exe,你应该会在命令行窗口中看到输出:

你好,仓颉

使用 VSCode 插件进行开发

VSCode 是一款流行的代码编辑器,拥有强大的插件生态系统。仓颉语言也为 VSCode 提供了专门的插件,支持代码高亮、语法检查、调试等功能。

安装 VSCode

首先,访问 VSCode 官网 下载适合你系统的安装包,并按照安装向导完成安装。推荐使用 1.67 或更高版本。

安装仓颉插件

启动 VSCode 后,点击左侧边栏的扩展图标进入扩展市场(或按 Ctrl+Shift+X)。搜索 Cangjie,找到仓颉插件后点击 Install 按钮进行安装。

在这里插入图片描述

配置仓颉 SDK

安装完插件后,需要配置 SDK 的路径。具体步骤如下:

  1. 单击左下角齿轮图标,选择设置选项。
  2. 在搜索栏输入 Cangjie,选择 Cangjie Language Support 选项。
  3. 找到 Cangjie Sdk: Option 选项,选择后端类型为 CJNative(默认选项)。
  4. 找到 Cangjie Sdk Path: CJNative Backend 选项,输入 CJNative 后端 SDK 文件夹的绝对路径。
  5. 重启 VSCode 使配置生效。

在这里插入图片描述

通过快捷键 Ctrl+Shift+P 调出命令面板,选择 cangjie: Create Cangjie Project View 命令,如果弹出创建仓颉项目的界面,说明 SDK 安装成功。

在这里插入图片描述
在这里插入图片描述

安装验证

通过快捷键 Ctrl + Shift + P(macOS 系统的快捷键为 Command + Shift + P) 调出 VSCode 的命令面板,选择 cangjie: Create Cangjie Project View 命令。

在这里插入图片描述

第一个helloworld程序

package testcjmain(): Int64 {println("hello world")return 0
}

在这里插入图片描述
运行

cjpm run

关于CJPM

CJPM(Cangjie Package Manager) 是仓颉编程语言的官方包管理工具,主要用于管理仓颉项目的模块、依赖和构建流程。以下是它的核心功能和用途:


1. CJPM 是什么?

  • 定位:仓颉语言的集成化工具链核心组件,类似其他语言的包管理器(如 npmcargo)。
  • 作用:统一管理项目的依赖、编译、测试、发布等全生命周期流程。

2. 核心功能

(1)依赖管理
  • 自动解析和下载依赖(支持本地路径、Git 仓库、中心仓)。
  • 解决多版本冲突(无需手动处理版本兼容性问题)。
  • 示例 cjpm.toml 配置:
    [dependencies]
    lib1 = { git = "https://github.com/org/lib1", branch = "dev" }
    lib2 = { path = "./local-lib" }
    
(2)项目构建
  • 一键编译项目(支持增量编译、交叉编译、并行编译):
    cjpm build          # 普通编译
    cjpm build -V       # 打印详细编译过程
    
(3)测试与运行
  • 运行单元测试:
    cjpm test           # 执行所有测试
    cjpm test src/pkg1  # 测试指定模块
    
  • 直接运行项目:
    cjpm run            # 编译后立即运行
    
(4)工作区支持
  • 管理多模块项目(类似 Rust 的 workspace):
    [workspace]
    members = ["module1", "module2"]
    
(5)发布与安装
  • 发布模块到中心仓:
    cjpm publish
    
  • 安装全局工具:
    cjpm install <tool-name>
    

3. 典型使用场景

  1. 初始化新项目
    cjpm init my-project  # 生成项目结构和 cjpm.toml
    
  2. 添加依赖后构建
    cjpm update          # 更新依赖
    cjpm build           # 重新构建
    
  3. 跨平台开发
    cjpm build --target x86_64-unknown-linux-gnu  # 交叉编译
    

4. 优势

  • 自动化:依赖下载、版本控制、编译流程全自动处理。
  • 灵活性:支持自定义构建脚本(通过 build.cj 文件)。
  • 生态集成:与仓颉编译器(cjc)和运行时(cjvm)深度协作。

5. 参考命令列表

命令作用
cjpm init初始化项目
cjpm build编译项目
cjpm test运行测试
cjpm run编译并运行
cjpm publish发布模块
cjpm install安装二进制工具

总结

CJPM 是仓颉开发中不可或缺的工具,简化了从依赖管理到构建发布的全部流程,显著提升开发效率。对于任何仓颉项目,cjpm.toml 是其核心配置文件,而 CJPM 命令是日常操作的入口。

参考文档

  • 仓颉官方手册中的 CJPM 使用指南。

结语

通过本文的讲述,你应该已经成功在 Windows 平台上搭建了仓颉语言开发环境,并能编写、编译并运行简单的仓颉程序。对于更复杂的应用程序开发,你还可以参考仓颉语言的官方文档,进一步学习和掌握更多高级特性。仓颉语言的全场景特性使其在各种开发环境中都能发挥出色的作用,无论是桌面应用、Web 服务还是移动应用,都可以选择仓颉语言进行开发。希望本文对你有所帮助,欢迎在评论区分享你的学习经验。

其他资源

鸿蒙下的仓颉语言开发:https://developer.huawei.com/consumer/cn/doc/cangjie-guides-V5/cj-start-overview-V5


文章转载自:

http://YiZHRLgS.Lcqrf.cn
http://GUeKUfCZ.Lcqrf.cn
http://VvHFRxZW.Lcqrf.cn
http://OofFr863.Lcqrf.cn
http://3XGR31XT.Lcqrf.cn
http://cNNUVRIX.Lcqrf.cn
http://0yW8E4eW.Lcqrf.cn
http://8uKV28Am.Lcqrf.cn
http://WWUgaEBi.Lcqrf.cn
http://q0SMna91.Lcqrf.cn
http://1CMXbBS3.Lcqrf.cn
http://Fa9axJe5.Lcqrf.cn
http://u1RDWPlo.Lcqrf.cn
http://PEPBzoXr.Lcqrf.cn
http://erRDlbS0.Lcqrf.cn
http://hwaQaFEF.Lcqrf.cn
http://0ZgHp1Ux.Lcqrf.cn
http://KkagLRnY.Lcqrf.cn
http://A5iP69uq.Lcqrf.cn
http://gZ4nNyvi.Lcqrf.cn
http://wBe2awIL.Lcqrf.cn
http://2DfgS87M.Lcqrf.cn
http://v6O2GaFu.Lcqrf.cn
http://mdlOwVQy.Lcqrf.cn
http://W3w0Xm5b.Lcqrf.cn
http://PTNBoJYa.Lcqrf.cn
http://CNH0a5w9.Lcqrf.cn
http://zwKAGp5N.Lcqrf.cn
http://UQg6XlfT.Lcqrf.cn
http://xQ96ea1W.Lcqrf.cn
http://www.dtcms.com/a/381295.html

相关文章:

  • 台达A2E
  • 【操作系统核心考点】进程调度算法全面总结:高频题型与易错点解析
  • ethercat在线调试工具
  • python base core partment-day07-异常、模块、包(对零基础小白友好)
  • 如何解决pip安装报错ModuleNotFoundError: No module named ‘vaex’问题
  • Acrobat JavaScript 代码中的颜色
  • TCGA单癌肿按单基因高低分组的转录组差异热图分析作图教程
  • SSRF:CVE-2021-40438
  • 传统项目管理与敏捷的核心差异
  • count down 98 days
  • 算法题 Day6---String类(3)
  • 知识模型中优化和模拟决策内容有哪些
  • PRINCE2与PMP项目管理体系对比
  • LINUX中USB驱动架构—设备驱动
  • 数据驱动工业智能决策:从痛点破局到全局优化的技术实践与方法论
  • 射频EVM
  • 21.2 Alpaca指令微调实战:Dolly-15K数据增强让LLaMA-2效果飙升82%
  • 每周资讯 | B站新游《三国:百将牌》首曝;2025年移动游戏市场预计达到1030亿美元
  • VMware网络配置
  • fastapi微服务
  • DNS解析:递归查询与迭代查询详解
  • 中级统计师-统计法规-第五章 统计机构与统计人员
  • API 资产治理:ETag/Cache-Control/分页/排序/投影的“契约基线”
  • V少JS基础班之第八弹:this
  • Class52 双向循环神经网络
  • STM32HAL库_cubeMX
  • Class54 编码器-解码器
  • c++多设备并发运行且互相操作 上位机软件结构
  • PCDN双跑量系统
  • Altium Designer使用精通教程 第三章(原理图绘制及编译检查)