从 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" 可以看到如下的内容:

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.hqwc.cn/news/777793.html

如若内容造成侵权/违法违规/事实不符,请联系编程知识网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

启动静态文件中间件

在启动项 Program.cs 文件中添加//app.UseStaticFiles(); // 启动静态文件中间件,默认访问wwwroot app.UseStaticFiles(new StaticFileOptions() {//修改默认访问地址为MyStaticFiles文件FileProvider = new PhysicalFileProvider(Path.Combine(builder.Environment.ContentRoo…

变异系数在fNIRS数据分析中有效性讨论

问题变异系数又称CV,它是无量纲的,定义为概率分布离散程度的归一化程度。在概率论中常常用来作为比较两组数据离散程度的指标,其在fNIRS信号这类连续信号中常常用来检测通道的信号质量好坏,阈值包括0.1、0.15和0.25等,阈值越大越宽松,当某个通道的CV值超过设定的阈值时判…

使用python对Excel表格某个区域保存为图片

实际工作中,我们经常会把表格某个区域(如:A1:F5)或某个图形保存为图片,如何用python自动做到这一点?不知屏幕前的小伙伴有没有遇到过类似的需求,此刻脑海里有木有一丢丢思路。python操作excel的第三方库有很多,个个都有各自的绝招和擅长的应用场景,简单罗列一下:pye…

位段 -- 内存布局详解-浅谈C语言

目录位段的介绍位段使用示例:位段的内存分配Example内存分配解析: ## 位段 位段的介绍位段(二进制位):就是按位存储位段(bit-field)是C语言中的一种特殊数据类型,它允许将一个字节分成几个部分,并为每个部分指定特定的位数,以便在内存中存储和访问这些部分。 其中位段相…

chrome查看web socket消息

1. 打开目标页面 2. f12--》网络--》WS,然后刷新页面( 如果不刷页面,就会看不到 websocket 请求,因为 websocket 是长连接,页面加载后只发出一次连接请求,不像 http 接口,不用刷新页面,待会儿也能看到,因为 http 接口是短连接,调用一次发出一次请求 ),如下所示:

位段 -- 内存布局详解C语言

目录位段的介绍位段使用示例:位段的内存分配Example内存分配解析: ## 位段 位段的介绍位段(二进制位):就是按位存储位段(bit-field)是C语言中的一种特殊数据类型,它允许将一个字节分成几个部分,并为每个部分指定特定的位数,以便在内存中存储和访问这些部分。 其中位段相…

Java流程控制04:循环结构

顺序结构的程序语句只能被执行一次。如果您想要同样的操作执行多次,就需要使用循环结构。 Java中有三种主要的循环结构:while 循环 do…while 循环 for 循环1. while 循环 while是最基本的循环,它的结构为: while (布尔表达式) { // 循环内容 }只要布尔表达式为 true,循环…

虚拟机--共享文件夹

在宿主机创建一个文件夹 2.进入VM软件的设置->共享文件夹(从主机的文件夹添加)Linux中共享文件夹位置:/mnt/hgfs/ 路径下

001在vscode中创建flask项目框架

目录在vscode中创建flask项目1.配置flask环境2.导入以及创建flask框架 在vscode中创建flask项目 1.配置flask环境 先配置解释器然后再该虚拟环境下进行安装flask模块 进行该指令:pip install flask==版本号2.导入以及创建flask框架在桌面或者文件中建立一个文件夹将其移到vs c…

002.flask的基本使用

目录flask的基本使用1.基本使用2.传参的两种方式3.通过返回html网页来展示4.通过面向对象传参给html网页5.在html里面写条件语句6.在html中用循环7.总结 flask的基本使用 1.基本使用点三角形运行复制http://127.0.0.1:5000到浏览器上软后加上面的/index得到如下:可以给其添加d…

Spring学习(四)AOP分析

动态代理:代理模式的解释:为其他对象提供一种代理以控制对这个对象的访问,增强一个类中的某个方法,对程序进行扩展。 切面(aspectj),切面包含切点(pointCut)和增强方法(advice),对连接点(joinPoint,类的方法就是连接点),然后织入(Weaving),原始对象为代理对…

蒙特卡洛模拟(3)————求解有约束的非线性规划问题

目录前言一、问题提出二、蒙特卡罗模拟的大体思路1.求出每个变量的大致范围2.生成随机数进行模拟试验三、手动计算每个变量的大致范围1.处理等式问题————进行降维2.处理不等式问题————得到大致范围(1)先处理简单的约束,得到变量范围(2)对复杂的约束进行放缩,得到…