仓颉——申请内测、环境搭建、编译测试

2024年6月21日,华为仓颉正式公开发布。

不少同学看过仓颉白皮书后,都在找SDK从哪下载,HelloWorld怎么跑。仓颉公众号也及时发布了内测的方式,我也亲自走了一遍整个流程,

一,申请内测

关注“仓颉编程语言”微信公众号,回复“SDK”关键词,填写内测申请问卷(姓名、邮箱、gitcode地址等)。【建议提前注册gitcode,github可直接授权登录】

 

 

接下来就是等待邮件回复,2-3个工作日, 

 

管理审核成功后,即可访问仓颉社区:仓颉SDKGitCode是面向全球开发者的开源社区,包括原创博客,开源代码托管,代码协作,项目管理等。与开发者社区互动,提升您的研发效率和质量。icon-default.png?t=N7T8https://gitcode.com/Cangjie 仓颉支持VSCode开发环境,社区提供了VSCode插件CangjieVSCodePlugin,以及Linux/Windows/MacOS版本的SDK。 

二,环境搭建

2.1 Windows平台搭建仓颉环境

2.1.1 下载SDK

从你送到的邮箱里面点击Windows版本的仓颉lSDK链接

点击exe或者 zip都行,exe需要安装,zip解压可用

 

我这里用的zip,直接解压

2.1.2 安装,配置系统环境

2.1.2.1 exe安装

如果你下载的SDK是exe格式,直接点击安装就好,安装时会自动将所需环境变量配置好。

选 all user 

 

 

 

 

 

 

2.1.2.2 zip 解压 配置环境变量 

我这里的解压到 E:\cangjie\cangjieSDK\

右键  我的电脑---->属性---->高级系统设置---->环境变量

 

然后找到下方  系统变量---->双击Path

 将 

E:\cangjie\cangjieSDK\bin

E:\cangjie\cangjieSDK\tools\bin

添加到环境变量

遇到环境变量超过2047 请参考《解决:此环境变量太大。此对话框允许将值设置为最长2047个字符-CSDN博客》 

然后用 命令行工具测试下 

 

C:\Users\Administrator>cjc --help
Usage:cjc [option] file...Options:--diagnostic-format <value> Diagnostic format. Candidate modes:<value>=json<value>=noColor<value>=default--scan-dependency           Get the package(s) which the current package depends on--conditional-compilation-config <value>User defined contion to compile--debug-macro               Enable debug macro--parallel-macro-expansion  Enable parallel macro expansion-g                          Enable compile debug version target--trimpath <value>          Remove a specified path prefix in debuginfo-s, --strip-all             Strip the symbol table from executable and dynamic library--test                      Enable compile test--mock <value>              Specify whether mock features are enabled, or disabled, or a runtime exception is thrown when trying to use mock features<value>=on<value>=off<value>=runtime-error-o, --output <value>        Specify product name or output directory when compiling a package--output-dir <value>        Specify output directory (it affects '--output' option)--static-std                Statically link packages of the std module--dy-std                    Dynamically link packages of the std module--static-libs               Statically link packages of other modules except std--dy-libs                   Dynamically link packages of other modules except std--lto <value>               Enable LTO to either 'full' or 'thin'<value>=full<value>=thin--enable-ad, --enable-auto-differentiationEnables automatic differentiation--enable-chir2-devirtualizationEnable CHIR 2 devirtualization.--enable-opaque             Enable opaque pointer--fchir-constant-propagationEnable constant propagation optimizaion in CHIR--fno-chir-constant-propagationDisable constant propagation optimizaion in CHIR--fchir-function-inlining   Enable function inlining optimizaion in CHIR--fno-chir-function-inliningDisable function inlining optimizaion in CHIR--fchir-devirtualization    Enable devirtualization optimizaion in CHIR--fno-chir-devirtualization Disable devirtualization optimizaion in CHIR--sanitizer-coverage-inline-8bit-countersEnable sanitizer-coverage-inline-8bit-counters in CHIR--sanitizer-coverage-inline-bool-flagEnable sanitizer-coverage-inline-bool-flag in CHIR--sanitizer-coverage-trace-pc-guardEnable sanitizer-coverage-trace-pc-guard in CHIR--sanitizer-coverage-pc-tableEnable sanitizer-coverage-pc-table in CHIR--sanitizer-coverage-stack-depthEnable sanitizer-coverage-stack-depth in CHIR--sanitizer-coverage-trace-comparesEnable sanitizer-coverage-trace-compares in CHIR--sanitizer-coverage-trace-memcmpEnable sanitizer-coverage-trace-memcmp in CHIR--sanitizer-coverage-level=0sancov level 0--sanitizer-coverage-level=1sancov level 1--sanitizer-coverage-level=2sancov level 2--sanitizer-coverage-level <value>Set sanitizer-coverage level--int-overflow <value>      Specify default integer overflow strategy:<value>=throwing<value>=wrapping<value>=saturating--fast-math                 Enable fast-math mode--link-options <value>      Options directly passed to linker-L, --library-path <value>  Add directory to library search path-l, --library <value>       Link library-B, --toolchain <value>     Use toolchain binaries and object files at the given directory--target <value>            Generate code for the given target platform--target-cpu <value>        Generate instructions for the given target processor (Experimental)--sysroot <value>           Set the system root directory under which bin, lib and include can be found--output-type <value>       Specify output file type<value>=exe                 emit executable (default)<value>=staticlib           emit static library<value>=dylib               emit dynamic library-O0                         Optimization level 0 (default)-O, -O1                     Optimization level 1-O2                         Optimization level 2-Os                         Optimization level s, like -O2 with extra optimizations for size-Oz                         Optimization level z, like -Os but reduces code size further-O<value>                   Set Optimization level--module-name <value>       Tell compiler name of the module-p, --package               Specify package directory to be compiled--import-path <value>       Add .cjo search path--incremental-compile       Enable incremental compilation.--save-temps <value>        Save intermediate compilation results. <value>: path to save temp files.-Woff, --warn-off <value>   Suppress a specific group of warning<value>=all<value>=unused<value>=driver-arg<value>=deprecated<value>=unsupport-compile-source<value>=package-import<value>=parser<value>=semantics<value>=interpreter-Won, --warn-on <value>     Report a specific group of warning<value>=all<value>=unused<value>=driver-arg<value>=deprecated<value>=unsupport-compile-source<value>=package-import<value>=parser<value>=semantics<value>=interpreter--error-count-limit <value> Emit specified <number> of errors only. Available options: all, <number> (8 by default)-V, --verbose               Enable verbose-v, --version               Print compiler version information-h, --help                  Show usage--macro-lib <value>         Options directly passed to macro library, put the value into "" when there is space in it--compile-macro             Options to compile the macro define package--coverage                  Enable coverage--experimental              Enable experimental options-j, --jobs <value>          Number of tasks to run at once--apc, --aggressive-parallel-compileEnable agrressive parallel compile--sanitize <value>          Enable sanitizer:<value>=address<value>=thread--fobf-string               Enable string literal obfuscation--fno-obf-string            Disable string literal obfuscation--fobf-const                Enable constant literal obfuscation--fno-obf-const             Disable constant literal obfuscation--fobf-layout               Enable code layout obfuscation--fno-obf-layout            Disable code layout obfuscation--fobf-cf-flatten           Enable control flow flatten obfuscation--fno-obf-cf-flatten        Disable control flow flatten obfuscation--fobf-cf-bogus             Enable control flow bogus obfuscation--fno-obf-cf-bogus          Disable control flow bogus obfuscation--fobf-all                  Enable all obfuscations--obf-config <value>        Specify obfuscation configure file--obf-level <value>         Specify obfuscation level. Available value: 1 to 10 (5 by default)--obf-seed <value>          Specify random seed for obfuscation algorithm. Available value: <number>--disable-reflection        Disable reflection--stack-trace-format <value>Specify stack trace format<value>=default<value>=simple<value>=all--pgo-instr-gen             PGO instrumentation--pgo-instr-use <value>     Read PGO instrumentation profile--discard-eh-frame          Discard the eh_frame section

三,开发编译测试

代码hello.cj

main() {println("你好,仓颉")
}

 编译

cjc hello.cj -o hello.out

运行

汉字编码有问题,我们后面学习在研究,先换成英文的试试 

 

main() {println("hello cangjie")
}

 

 

参考资料

  1. 仓颉官网:仓颉-鸿蒙原生应用编程语言-华为开发者联盟
  2. 仓颉社区:GitCode - 全球开发者的开源社区,开源代码托管平台
  3. 仓颉编程语言白皮书:文档中心

 

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

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

相关文章

暗潮短视频:成都柏煜文化传媒有限公司

暗潮短视频&#xff1a;涌动的新媒体力量 在数字化时代的浪潮中&#xff0c;短视频以其独特的魅力和无限的潜力&#xff0c;迅速成为新媒体领域的一股强大力量。而在这片繁荣的短视频领域中&#xff0c;成都柏煜文化传媒有限公司“暗潮短视频”以其独特的定位和深邃的内容&…

Beyond Low-frequency Information in Graph Convolutional Networks

推荐指数: #paper/⭐⭐⭐ #paper/&#x1f4a1; 发表于:AAAI21 简称:FAGCL 问题提出背景: GCN常常使用低频信息,但是在现实中,不仅低频信息重要,高频信息页重要 如上图,随着类间链接的增加,低频信号的增强开始变弱,高频信号的增强开始增加. 作者贡献: 不仅低频信号重要,高…

智能井盖采集装置 开启井下安全新篇章

在现代城市的脉络之下&#xff0c;错综复杂的管网系统如同城市的血管&#xff0c;默默支撑着日常生活的有序进行。而管网的监测设备大多都安装在井下&#xff0c;如何给设备供电一直是一个难题&#xff0c;选用市电供电需经过多方审批&#xff0c;选用电池供电需要更换电池包&a…

MySQL表的练习

二、创建表 1、创建一个名称为db_system的数据库 create database db_system; 2、在该数据库下创建两张表&#xff0c;具体要求如下 员工表 user 字段 类型 约束 备注 id 整形 主键&#xff0c;自增长 id N…

Spring Boot项目(苍穹)

Spring Boot 框架详解 概述 Spring Boot 是一个基于 Spring 框架的工具&#xff0c;用于简化 Spring 应用程序的开发。它通过提供默认配置和快速启动机制&#xff0c;使开发者可以专注于业务逻辑&#xff0c;而不必过多关注配置和底层细节。Spring Boot 让开发变得更加简单、…

权限控制权限控制权限控制权限控制权限控制

1.权限的分类 视频学习&#xff1a;https://www.bilibili.com/video/BV15Q4y1K79c/?spm_id_from333.337.search-card.all.click&vd_source386b4f5aae076490e1ad9b863a467f37 1.1 后端权限 1. 后端如何知道该请求是哪个用户发过来的 可以根据 cookie、session、token&a…

Python pyecharts 模块

pyecharts 是一个基于 ECharts.js 的 Python 可视化库&#xff0c;用于生成各种类型的交互式图表和数据可视化。它支持多种常见的图表类型&#xff0c;如折线图、柱状图、散点图、饼图等&#xff0c;可以在 Web 页面中呈现&#xff0c;并且具有丰富的配置选项和样式定制能力。 …

qt c++ 实现服务注册、发布服务,最后被成功后回调

在Qt中实现服务注册、发布服务&#xff0c;并在服务成功发布后执行回调&#xff0c;可以通过使用Qt的QLocalServer和QLocalSocket来实现本地服务通信&#xff0c;或者使用网络服务如QTcpServer和QTcpSocket进行网络服务的发布与发现。这里我们以本地服务为例来说明。 实现本地…

WIN32核心编程 - 进程操作(一) 进程基础 - 创建进程 - 进程句柄

公开视频 -> 链接点击跳转公开课程博客首页 -> 链接点击跳转博客主页 目录 进程基础 进程的定义与概念 进程的组成 创建进程 可执行文件 CreateProces 执行流程 GetStartupInfo 进程终止 进程句柄 创建进程 打开进程 进程提权 内核模拟 回溯对象 自身进…

SD NAND时序解析

一、SD NAND时序的重要性 在SD NAND的数据传输过程中&#xff0c;时序起着至关重要的作用。正确的时序确保了数据能够准确无误地在主机和SD NAND之间传输。 二、命令与读写时序 SD NAND的通信基于命令和数据传输&#xff0c;遵循以下时序规则&#xff1a; 命令与响应交互&…

安卓常用的控件

人不走空 &#x1f308;个人主页&#xff1a;人不走空 &#x1f496;系列专栏&#xff1a;算法专题 ⏰诗词歌赋&#xff1a;斯是陋室&#xff0c;惟吾德馨 在Android开发中&#xff0c;控件&#xff08;也称为视图或控件组件&#xff09;是构建用户界面的基本元素。它们…

MySQL之备份与恢复(三)

备份与恢复 逻辑备份还是物理备份 物理备份 物理备份有如下好处: 1.基于文件的物理备份&#xff0c;只需要将需要的文件复制到其他地方即可完成备份。不需要其他额外的工作来生成原始文件。2.物理备份的恢复可能就更简单了&#xff0c;这取决于存储引擎。对于MyISAM&#x…

C++_04

1、继承 1.1 基本概念 继承是面向对象编程&#xff08;OOP&#xff09;中的一个核心概念&#xff0c;特别是在C中。它允许一个类&#xff08;称为派生类或子类&#xff09;继承另一个类&#xff08;称为基类或父类&#xff09;的属性和方法。继承的主要目的是实现代码重用&…

康姿百德磁性床垫好不好,效果怎么样靠谱吗

康姿百德典雅款床垫&#xff0c;打造舒适睡眠新体验 康姿百德床垫是打造舒适睡眠新体验的首选&#xff0c;其设计能够保护脊椎健康&#xff0c;舒展脊椎&#xff0c;让您享受一夜好眠。康姿百德床垫的面料选择也非常重要&#xff0c;其细腻亲肤的针织面料给您带来柔软舒适的触…

如何在操作使用ufw设置防火墙

UFW&#xff08;简单防火墙&#xff09;是用于管理iptables防火墙规则的用户友好型前端。它的主要目标是使iptables的管理更容易。 在学习Linux的时候大家一般都会关心命令&#xff0c;Posix API和桌面等&#xff0c;很少会去了解防护墙。其实除了一些网络安全厂商提供的付费防…

交互案例:5大经典交互效果

文件格式&#xff1a;.rp&#xff08;请与班主任联系获取原型文档&#xff09; 文件名称&#xff1a;Axure交互案例&#xff1a;5大经典交互实现 文件大小&#xff1a;78.5 MB 文档内容介绍 五大经典交互包括&#xff1a; 图片手风琴 图片悬浮放大 详细说明切换 图片全屏查…

【Ubuntu noble】apt 无法安装软件 Unable to locate package vim

宿主机以及 docker 无法定位软件包 将 /etc/apt/sources.list.d/ubuntu.sources 修改为以下内容&#xff08;主要是 Suites 字段增加了noble noble-updates&#xff09; Types: deb URIs: http://archive.ubuntu.com/ubuntu/ Suites: noble noble-updates noble-backports Com…

无需启动工程造价司法鉴定的情形

第一&#xff0c;当事人在诉讼前已经对建设工程价款结算达成协议。如果当事人在诉讼前已经对建设工程价款结算已经达成协议&#xff0c;意味着工程价款的结算金额在诉讼前已经确定&#xff0c;按照上述归纳的关于工程造价司法鉴定程序的启动标准&#xff0c;则此时已无启动工程…

--7.4

7.4 Springboot 1、什么是 SpringBoot Starters 是一系列依赖关系的集合&#xff0c;因为它的存在&#xff0c;项目的依赖之间的关系对我们来说变得简单了。 2、SpringBootApplication 复合注解&#xff1a; EnableAutoConfigurationComponentScanConfiguration 3、Rest…

上位机GUI 第三弹

&#x1f60a; &#x1f60a; &#x1f60a; 从协议层面讲&#xff0c;地质单元相当重要&#xff0c;调试模式,我只能义命令发送的索引码作为,每个设备的区分方式,调试的情况&#xff0c;不在设备上设置任何东西&#xff0c;开机访问地址和端口就能用 因为懒&#xff0c;直接将…