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

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…

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

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…

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;是构建用户界面的基本元素。它们…

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

康姿百德典雅款床垫&#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; 图片手风琴 图片悬浮放大 详细说明切换 图片全屏查…

上位机GUI 第三弹

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

【代码随想录】【算法训练营】【第55天】 [42]接雨水 [84]柱状图中最大的矩形

前言 思路及算法思维&#xff0c;指路 代码随想录。 题目来自 LeetCode。 day 55&#xff0c;又是一个周一&#xff0c;不能再坚持~ 题目详情 [42] 接雨水 题目描述 42 接雨水 解题思路 前提&#xff1a;雨水形成的情况是凹的, 需要前中后3个元素&#xff0c;计算该元…

专业的TPM管理咨询公司有哪些特点?

专业的TPM管理咨询公司&#xff0c;作为现代企业管理和设备维护的重要合作伙伴&#xff0c;其特点不仅体现在技术能力和服务质量上&#xff0c;更在于其独特的经营理念和方法论。以下是专业TPM管理咨询公司所具备的显著特点&#xff1a; 一、全面的技术实力与深厚的行业经验 专…

word 转pdf 中图片不被压缩的方法

word 转pdf 中图片不被压缩的方法 法1&#xff1a; 调节word 选项中的图片格式为不压缩、高保真 法2&#xff1a; 1: word 中的图片尽可能使用高的分辨率&#xff0c;图片存为pnd或者 tif 格式&#xff08;最高清&#xff09; 2: 转化为pdf使用打印机器&#xff0c;参数如下…

分子AI预测赛笔记

#AI夏令营 #Datawhale #夏令营 Taks1 跑通baseline 根据task1跑通baseline 注册账号 直接注册或登录百度账号&#xff0c;etc fork 项目 零基础入门 Ai 数据挖掘竞赛-速通 Baseline - 飞桨AI Studio星河社区 启动项目 选择运行环境&#xff0c;并点击确定&#xff0c;没…

台灯学生用哪个牌子最好?学生用台灯品牌排行榜分析

台灯学生用哪个牌子最好&#xff1f;护眼台灯在近年来成为家长和长时间使用电子设备人群关注的家电/学生产品。对于家中有孩子或经常面对电子屏幕的人士来说&#xff0c;很多人可能已经对这类产品有所了解并进行了购买。然而&#xff0c;部分家长对护眼台灯的认识还不够深入&am…

FFT 简单基础(matlab

使用 fs 进行采样&#xff0c;进行 N点FFT 选择显示0~N/21点的幅值 横坐标对应频率计算公式&#xff1a; fs * n / N 举个梨子&#xff1a; 频率2kHz采样1s&#xff0c;得到2000个点的序列y(n) 对序列y(n)做4096点的FFT 幅值响应对应的横坐标频率…

机器人控制系列教程之Stewart平台简介和运动学分析

Stewart平台简介及应用场景 六自由度 Stewart 并联机器人结构简图如下图所示&#xff0c;主要有一个固定平台和一个移动平台以及六个可伸缩的推杆组成&#xff0c;通常情况下&#xff0c;固定平台与底座连接&#xff0c;移动平台在空间具有六个自由度&#xff0c;通过六个推杆…

价格很实惠,希喂、爱立方、生生不息主食冻干抗得住实测吗?

在挑选主食冻干时&#xff0c;许多宠物主人都会感到头疼。尽管主食冻干相较于普通猫粮具有诸多优势&#xff0c;但其价格也相对高昂。这导致许多宠物主人担心高价购买的主食冻干可能营养价值并不理想。然而&#xff0c;在选择时&#xff0c;我们还需要考虑其他重要因素&#xf…