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

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-differentiation
                              Enables automatic differentiation
  --enable-chir2-devirtualization
                              Enable CHIR 2 devirtualization.
  --enable-opaque             Enable opaque pointer
  --fchir-constant-propagation
                              Enable constant propagation optimizaion in CHIR
  --fno-chir-constant-propagation
                              Disable constant propagation optimizaion in CHIR
  --fchir-function-inlining   Enable function inlining optimizaion in CHIR
  --fno-chir-function-inlining
                              Disable function inlining optimizaion in CHIR
  --fchir-devirtualization    Enable devirtualization optimizaion in CHIR
  --fno-chir-devirtualization Disable devirtualization optimizaion in CHIR
  --sanitizer-coverage-inline-8bit-counters
                              Enable sanitizer-coverage-inline-8bit-counters in CHIR
  --sanitizer-coverage-inline-bool-flag
                              Enable sanitizer-coverage-inline-bool-flag in CHIR
  --sanitizer-coverage-trace-pc-guard
                              Enable sanitizer-coverage-trace-pc-guard in CHIR
  --sanitizer-coverage-pc-table
                              Enable sanitizer-coverage-pc-table in CHIR
  --sanitizer-coverage-stack-depth
                              Enable sanitizer-coverage-stack-depth in CHIR
  --sanitizer-coverage-trace-compares
                              Enable sanitizer-coverage-trace-compares in CHIR
  --sanitizer-coverage-trace-memcmp
                              Enable sanitizer-coverage-trace-memcmp in CHIR
  --sanitizer-coverage-level=0
                              sancov level 0
  --sanitizer-coverage-level=1
                              sancov level 1
  --sanitizer-coverage-level=2
                              sancov 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-compile
                              Enable 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. 仓颉编程语言白皮书:文档中心

 

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

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

香橙派AIpro做目标检测

使用香橙派AIpro做目标检测 文章目录 使用香橙派AIpro做目标检测香橙派AIpro开发板介绍香橙派AIpro应用体验YOLOV5s目标检测使用场景描述图像目标检测视频目标检测摄像头目标检测YOLOv5s 目标检测的运行结果分析香橙派 AIpro 在运行过程中的表现 香橙派AIpro AI应用场景总结 香…

leetCode-hot100-动态规划专题

动态规划 动态规划定义动态规划的核心思想动态规划的基本特征动态规划的基本思路例题322.零钱兑换53.最大子数组和72.编辑距离139.单词拆分62.不同路径63.不同路径Ⅱ64.最小路径和70.爬楼梯121.买卖股票的最佳时机152.乘积最大子数组 动态规划定义 动态规划&#xff08;Dynami…

Python 项目依赖离线管理 pip + requirements.txt

背景 项目研发环境不支持联网&#xff0c;无法通过常规 pip install 来安装依赖&#xff0c;此时需要在联网设备下载依赖&#xff0c;然后拷贝到离线设备进行本地安装。 两台设备的操作系统、Python 版本尽可能一致。 离线安装依赖 # 在联网设备上安装项目所需的依赖 # -d …

香港即将“放松”加密货币监管!加密牌照制度备受批评!全球主力军无法进入香港市场?动摇了香港Web3的信心!

2024年7月3日&#xff0c;香港金融服务及库务局局长许正宇在立法会会议上表示&#xff0c;香港金融管理局(HKMA)和证券及期货事务监察委员会(SFC)将根据市场发展情况&#xff0c;适时检讨虚拟资产相关活动的监管要求。 这一表态引发了人们对香港加密货币监管框架可能进行调整的…

AI智能音箱用2×15W立体声功放芯片NTP8918

智能音箱是近年来非常受欢迎的智能家居产品之一&#xff0c;它集成了人工智能技术和音频技术&#xff0c;能够为用户提供语音助手、音乐播放、智能家居控制等多种功能。其中&#xff0c;音频输出是智能音箱的核心功能之一&#xff0c;而功放芯片则是实现音频放大的关键组成部分…

尽量不写一行if...elseif...写出高质量可持续迭代的项目代码

背景 无论是前端代码还是后端代码&#xff0c;都存在着定位困难&#xff0c;不好抽离&#xff0c;改造困难的问题&#xff0c;造成代码开发越来越慢&#xff0c;此外因为代码耦合较高&#xff0c;总是出现改了一处地方&#xff0c;然后影响其他地方&#xff0c;要么就是要修改…

Liunx网络配置

文章目录 一、查看网络配置永久修改网卡临时修改网卡 二、查看主机名称 hostname三、查看路由表条目 route四、查看网络连接情况netstat五、获取socket统计信息ss六、查看当前系统中打开的文件和进程的工具lsof七、测试网络连通性ping八、跟踪数据包 traceroute九、域名解析 ns…

适合金融行业的国产传输软件应该是怎样的?

对于金融行业来说&#xff0c;正常业务开展离不开文件传输场景&#xff0c;一般来说&#xff0c;金融行业常用的文件传输工具有IM通讯、邮件、自建文件传输系统、FTP应用、U盘等&#xff0c;这些传输工具可以基础实现金融机构的文件传输需求&#xff0c;但也存在如下问题&#…

ONNXRuntime与CUDA所对应的版本

官方链接&#xff1a; NVIDIA - CUDA | onnxruntime

软信天成:您的数据仓库真的“达标”了吗?

在复杂多变的数据环境中&#xff0c;您的数据仓库是否真的“达标”了&#xff1f;本文将深入探讨数据仓库的定义、合格标准及其与数据库的区别&#xff0c;帮助您全面审视并优化您的数据仓库。 一、什么是数据仓库&#xff1f; 数据仓库是一个面向主题的、集成的、相对稳定的、…

Django任意URL跳转漏洞(CVE-2018-14574)

目录 Django介绍 URL跳转漏洞介绍 Django任意URL跳转漏洞介绍 环境搭建 防御方法 前段时间在面试时&#xff0c;问到了URL跳转漏洞&#xff0c;我没有回答好&#xff0c;下午把URL跳转漏洞学习了&#xff0c;发现也不难&#xff0c;看来还需要学习的东西很多呀&#xff0c…

AI 芯片之战:开启智能新时代的关键角逐

在科技发展的浪潮中&#xff0c;一场围绕 AI 芯片的激烈竞争正在全球范围内如火如荼地展开。多家巨头纷纷投身其中&#xff0c;使得这场混战已然进入白热化阶段。 AI 芯片&#xff0c;作为推动人工智能发展的核心硬件&#xff0c;其作用举足轻重。它能够高效地处理海量的数据&a…

# Kafka_深入探秘者(9):kafka 集群管理

Kafka_深入探秘者&#xff08;9&#xff09;&#xff1a;kafka 集群管理 一、kafka 集群概述 1、kafka 集群概述&#xff1a; 集群是一种计算机系统&#xff0c;它通过一组松散集成的计算机软件和/或硬件连接起来高度紧密地协作完成计算工作。在某种意义上&#xff0c;他们可…

Webpack: 并行构建

概述 受限于 Node.js 的单线程架构&#xff0c;原生 Webpack 对所有资源文件做的所有解析、转译、合并操作本质上都是在同一个线程内串行执行&#xff0c;CPU 利用率极低&#xff0c;因此&#xff0c;理所当然地&#xff0c;社区出现了一些以多进程方式运行 Webpack&#xff0…

SQL Server详细使用教程(包含启动SQL server服务、建立数据库、建表的详细操作) 非常适合初学者

文章目录 目录 前言 一、启动SQL server服务的三种方法 1.不启动SQL server服务的影响 2.方法一&#xff1a;利用cmd启动SQL server服务 3.方法二&#xff1a;利用SQL Server配置管理器启动SQL server服务 4.方法三&#xff1a;在服务管理器中启动SQL server服务 二、建立数据库…

数据结构 —— 图的遍历

数据结构 —— 图的遍历 BFS&#xff08;广度遍历&#xff09;一道美团题DFS&#xff08;深度遍历&#xff09; 我们今天来看图的遍历&#xff0c;其实都是之前在二叉树中提过的方法&#xff0c;深度和广度遍历。 在这之前&#xff0c;我们先用一个邻接矩阵来表示一个图&#…

【Python新手入门指南】pip安装失败、下载慢、pip换源

文章目录 前言一、换源的基本命令是什么&#xff1f;二、如何从官方来换源总结 前言 对于Python新手而言&#xff0c;使用pip安装包就会成为一个问题&#xff0c;因为国内下载慢&#xff0c;甚至可能下载不成功&#xff0c;课程要安装库&#xff0c;但是连库都安装不成功&…

20240705 每日AI必读资讯

&#x1f4da;Retool 刚刚发布了最新2024上半年《人工智能现状报告》 - 收集了约750名技术人员的意见 - 包括开发者、数据团队和各行业的领导者&#xff0c;了解如何利用人工智能产生真正的影响。 &#x1f517; 2024上半年《人工智能现状报告》Retool刚刚发布了最新-CSDN b…

瑞数信息:智能防护新时代,看AI如何筑起网络防线

AI时代&#xff0c;网络安全危与机并行。 尤其是近年来大火的大模型&#xff0c;对于网络安全行业的影响与其他行业有所不同&#xff0c;一方面&#xff0c;AI能够通过大幅降低了安全攻击的门槛&#xff0c;网络威胁的复杂性和多样性不断增加&#xff0c;如自动化攻击、零日漏…

记录问题:解决vscode找不到Python自定义模块,报错No module named ‘xxx‘

1. 背景 我非要用vscode&#xff0c;不用pycharm&#xff0c;哼&#xff01; 2. 问题 由于 import xx 自定义的模块&#xff0c; python run 的时候会报错 No module named ‘xxx‘ 报错信息&#xff1a; Traceback (most recent call last):File "d:\work\sf_financ…