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

【仓颉】仓颉编程语言Windows安装指南 配置环境变量 最简单解决中文乱码问题和其他解决方案大全

适用于版本: 0.53.13 | 发布日期: 2024-10-24 (以后的可能也适用)
本机windows版本:24H2 内部版本号windows 10.0.26100
因为仓颉的官方文档一直没更新,所以在这里写一下如何在windows上完成这些配置和成功运行

安装

从官方渠道下载zip的压缩包(如Cangjie-x.y.z-windows_x64.zip)以后,解压在任意适合的目录
一级目录,会发现里面有3个脚本文件,分别为envsetup.bat,envsetup.ps1 和 envsetup.sh

下面摘自文档:
若使用 Windows 命令提示符(CMD)环境,请执行

path\to\cangjie\envsetup.bat

若使用 PowerShell 环境,请执行:

path\to\cangjie\envsetup.ps1

若使用 MSYS shell、bash 等环境,请执行:

source path/to/cangjie/envsetup.sh

可以通过输入cjc -v来判断是否安装成功,但是由于 envsetup 脚本所配置的环境变量仅在当前命令行窗口有效,编程的时候会遇到很多问题,所以下面分享如何全局环境变量

配置环境变量

首先在系统变量中,我新建了一个变量名字为CANGJIE_HOME的变量,地址为Cangjie解压后 含有配置环境脚本文件的那一级目录的绝对路径,如图
编辑系统变量
然后我在系统变量的Path中新添加额外的5个环境变量
系统变量中额外的5个环境变量
其中这个目录个人认为可以用%CANGJIE_HOME%替代,
所以我下面给出的是%CANGJIE_HOME%的版本

%CANGJIE_HOME%\bin
%CANGJIE_HOME%\tools\bin
%CANGJIE_HOME%\runtime\lib\windows_x86_64_llvm
%CANGJIE_HOME%\tools\lib
%USERPROFILE%\.cjpm\bin

配置以后记得测试一下
测试是不是成功配置

第一个仓颉程序

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

使用cjc hello.cj -o hello.exe编译以后,会发现中文打印会出错
仓颉打印出错
这里只给出在当前终端环境最方便的解决方案,仅限当前终端使用,关闭或新建终端后需要重新输入
其他方法,包括永久生效方法在下面给出

 [Console]::OutputEncoding = [System.Text.Encoding]::UTF8
}

最简单的在当前终端能正常显示的解决方案
在这里插入图片描述

其他解决方案大全

1. 控制面板方法 (永久生效)

找到控制面板的区域设置,点击管理,如下图,更改系统区域设置,勾选beta攻能
在这里插入图片描述
在这里插入图片描述

2. 直接运行法

如果使用的vscode,直接右上角run code,而不是自己在终端里运行
(可能需要安装cangjie官方的vscode插件)
此方法原理为,会新建一个cmd的终端(vscode自己开的终端默认为powershell)
并且是用chcp 65001,即调整编码格式了以后的,也是临时方法,仅当前创口有效

其他方法

  1. 暂时和永久更改CMD以及powershell输出方法,不一定适用于win11

参考

  1. 仓颉官方安装文档 安装仓颉工具链
  2. 仓颉官方安装文档 运行第一个仓颉程序
  3. 仓颉语言运行中文乱码问题

http://www.kler.cn/a/526678.html

相关文章:

  • 智慧园区系统助力企业智能化升级实现管理效率与安全性全方位提升
  • Linux工具使用
  • Linux文件原生操作
  • Ubuntu20.04 磁盘空间扩展教程
  • 小程序-视图与逻辑
  • 【Redis】List 类型的介绍和常用命令
  • 360嵌入式开发面试题及参考答案
  • 【Linux指令/信号总结】粘滞位 重定向 系统调用 信号产生 信号处理
  • 【开源免费】基于Vue和SpringBoot的医院资源管理系统(附论文)
  • Python的那些事第六篇:从定义到应用,Python函数的奥秘
  • 将多目标贝叶斯优化与强化学习相结合用于TinyML
  • 2024年数据记录
  • 【16届蓝桥杯寒假刷题营】第1期DAY2
  • 创建 priority_queue - 进阶(内置类型)c++
  • React 低代码项目:项目创建
  • .Net / C# 分析文件编码 并将 各种编码格式 转为 另一个编码格式 ( 比如: GB2312→UTF-8, UTF-8→GB2312)
  • Vue中的动态组件是什么?如何动态切换组件?
  • C 标准库 - `<errno.h>`
  • 学习笔记 ---- 平衡树 总结
  • UE求职Demo开发日志#15 思路与任务梳理、找需要的资源
  • sys中目录和文件的建立以及与驱动的交互
  • 【Block总结】LSKNet,大核卷积|即插即用
  • opencv裁剪视频区域
  • 白嫖DeepSeek:一分钟完成本地部署AI
  • Linux工具使用
  • Golang 并发机制-2:Golang Goroutine 和竞争条件