在这里插入图片描述

仓颉编程语言是一款面向全场景智能的新一代编程语言,主打原生智能化、天生全场景、高性能、强安全。要开始使用仓颉语言,首先需要安装其工具链。以下是针对不同操作系统的安装指南:

Linux 平台安装指南

环境准备

仓颉工具链已在以下 Linux 发行版上进行了完整功能测试:

  • SUSE Linux Enterprise Server 12 SP5
  • Ubuntu 18.04
  • Ubuntu 20.04

在安装仓颉工具链之前,需要确保系统满足以下环境要求:

  • 架构要求
    • x86_64:glibc 2.22,Linux Kernel 4.12 或更高版本,libstdc++ 6.0.24 或更高版本
    • aarch64:glibc 2.27,Linux Kernel 4.15 或更高版本,libstdc++ 6.0.24 或更高版本

此外,还需安装以下依赖:

  • SUSE Linux Enterprise Server 12 SP5
    zypper install binutils glibc-devel gcc-c++
    
  • Ubuntu 18.04
    apt-get install binutils libc-dev libc++-dev libgcc-7-dev
    
  • Ubuntu 20.04
    apt-get install binutils libc-dev libc++-dev libgcc-9-dev
    

注意:仓颉工具链依赖 OpenSSL 3,若系统包管理工具未提供该版本,需要手动编译安装。

安装步骤

  1. 下载安装包:前往 仓颉官方发布渠道,根据系统架构下载对应的安装包,例如 Cangjie-x.y.z-linux_x64.tar.gz

  2. 解压安装包

 tar xvf Cangjie-x.y.z-linux_x64.tar.gz
  1. 配置环境:进入解压后的 cangjie 目录,执行环境设置脚本:

    source cangjie/envsetup.sh
    
  2. 验证安装:运行以下命令查看版本信息,确认安装成功:

    cjc -v
    

注意:envsetup.sh 脚本仅在当前 shell 环境中配置工具链相关的环境变量,若在新 shell 环境中使用,需要重新执行该脚本。

卸载与更新

删除安装目录,并移除相关环境变量即可完成卸载:

rm -rf <path_to_cangjie>

若需更新工具链,先卸载当前版本,然后按照上述步骤安装新版本。

Windows 平台安装指南

安装步骤

  1. 下载安装包:前往 仓颉官方发布渠道,选择适配系统架构的 Windows 版安装包,格式为 .exe.zip

  2. 安装工具链

    • .exe 格式:直接运行安装程序,按照安装向导完成安装。
    • .zip 格式:解压到指定目录,然后根据使用的命令行环境,执行对应的环境设置脚本:
      • CMD 环境:运行 envsetup.bat
      • PowerShell 环境:运行 envsetup.ps1
      • 其他环境:运行 envsetup.sh
  3. 验证安装:在命令行中执行 cjc -v,查看版本信息,确认安装成功。

卸载与更新

删除安装目录,并移除相关环境变量即可完成卸载。若需更新工具链,先卸载当前版本,然后按照上述步骤安装新版本。

macOS 平台安装指南

目前,仓颉工具链尚未提供针对 macOS 平台的完整安装指导。建议关注 仓颉编程语言官网 的最新动态,以获取最新的安装信息。

常见问题解答

  1. 如何处理 OpenSSL 3 的依赖问题?

    若系统包管理工具未提供 OpenSSL 3,可参考 Linux 版本工具链的支持与安装 中的编译安装方法。

  2. 如何在新终端中使用仓颉工具链?

    每次打开新终端时,需要重新执行 envsetup.sh 脚本,或将其添加到 shell 初始化配置文件(如 .bashrc.zshrc)中,使其在每次启动时自动生效。

  3. 如何获取更多帮助?

    请访问 仓颉编程语言文档中心 获取详细的使用指南和开发者手册。

通过以上步骤,您即可在对应的平台上成功安装仓颉工具链,开始体验这款新一代编程语言的强大功能。

在线体验

通过这个地址就可以进行在线体验:
在此页面可以初步体验其功能。
在这里插入图片描述

案例体现

示例场景:蒙特卡洛算法求圆周率


// 示例场景:蒙特卡洛算法求圆周率
// 涉及特性:常量,变量,可变性,类型转换,幂运算符
import std.random.*
import std.math.*

main() {
    // 常量定义是为编译期数据命名,可用于常量表达式中
    const N = 100000u32
    // 变量定义是为运行时数据存储单元命名,以便后续程序引用
    // 如果需要对这份存储单元进行读/写,可使用 var 定义可变变量
    var n: UInt32 = 0 // 可以显式指定变量的类型
    let random = Random() // 如果省略类型标注,则以初值表达式的类型确定变量类型
    for (_ in 0..N) {
        // 如果对这份存储单元只读不写,可使用 let 定义不可变变量
        let x = random.nextFloat64()
        // 不可变变量的初值在运行时确定,这是它和常量的最大区别
        let y = random.nextFloat64()
        // 读取不可变变量的值
        if ((x - 0.5) ** 2 + (y - 0.5) ** 2 < 0.25) {
            n++ // 修改可变变量的值
        }
    }
    let pi = Float64(n) / Float64(N) * 4.0
    println("π ≈ ${pi}")
    println("deviation: ${abs(Float64.PI - pi)}")
}

运行结果

在这里插入图片描述

Logo

讨论HarmonyOS开发技术,专注于API与组件、DevEco Studio、测试、元服务和应用上架分发等。

更多推荐