《仓颉语言实战》仓颉编译器cjc详解常用编译选项与条件编译速查表【免费下载链接】仓颉语言实战-张磊仓颉语言实战由张磊编写清华大学出版社出版。 该书践行“零基础入门仓颉语言”的理念具有内容通俗易懂知识点循序渐进的特点可以帮助读者快速掌握仓颉编程语言。项目地址: https://gitcode.com/Cangjie-SIG/cangjieyuyanshizhan-ZL《仓颉语言实战》张磊 著清华大学出版社配套源码仓库中第26章完整演示了仓颉编译器 cjc的常用编译选项与条件编译写法。本文以速查表形式整理 cjc 编译命令、核心参数、When条件编译宏与单元测试编译方法帮助新手快速上手仓颉语言的编译与构建流程无需逐字通读也能查表即用。一、cjc 是什么一分钟理解仓颉编译器cjc 是仓颉语言自带的官方编译器命令负责把.cj源文件编译、链接为可执行程序。其基本用法如下cjc compile main.cj执行后会在当前目录生成与入口函数同名的可执行文件如main。你可以通过cjc compile --help查看全部选项下面这张表汇总了日常开发最常用的参数。二、cjc 常用编译选项速查表 选项作用典型场景compile编译子命令后接.cj文件日常编译的固定入口-target 平台指定目标平台如x86_64-unknown-linux交叉编译到不同系统-opt 0~3设置优化等级数字越大优化越深发布版用高级优化-I 路径添加源文件搜索路径多目录工程管理-l 库名链接外部 C 库调用系统 C 接口--lib-path 路径指定链接库搜索路径第三方库位置不在默认目录--import 包编译时导入第三方包使用社区仓颉包--export 包将源文件导出为包把模块发布为可复用包--emit 格式指定产物类型可执行文件/动态库/目标文件编译成.so动态库-D 宏值定义编译期宏供When使用条件编译的开关来源--test以单元测试模式运行编译产物跑TestCase用例--testcase 用例只运行指定测试用例快速验证单个用例--print-cangjie-ir打印仓颉中间表示学习编译器原理--print-llvm-ir打印 LLVM IR深入底层代码生成--version/--help查看版本 / 帮助信息环境自检 新手记忆法日常只需记住compile、-opt、-D、--test、--import/--export五组其余按需查表即可。三、条件编译用 When 让代码按环境生效条件编译是 cjc 编译选项的高阶玩法通过When[条件]标注代码块再配合-D选项传入宏值让同一段源码在不同平台或配置下编译出不同行为。1. 按操作系统分支见 condition_compile.cj// When[os linux] // func print() { println(linux) }2. 按自定义宏分支见 user_defined_condition_compile.cj编译时加上-D dbmysql即可让When[dbmysql]标注的函数参与编译。3. 多条件组合见 multi_condition_compile.cj使用连接多个条件例如When[dbmysqloslinux]实现数据库 操作系统双重定向编译适合按部署环境裁剪功能。⚠️ 注意书中示例已全面适配仓颉 1.0.0当前版本暂不支持when关键字相关写法在示例中以注释形式保留升级后可直接放开使用。四、编译即测试用 --test 跑单元测试把--test加入编译命令cjc 会执行源码中的TestCase用例。配套示例 test_demo.cj 基于std.unittest框架定义测试类编译运行后即可在终端看到用例输出无需额外测试工具。五、包编译实战--export 与 --import 配合书中 log/printer.cj 演示了将日志模块导出为包log再由 cjc_demo.cj 通过import log.printLog导入使用同目录的 loga/printer.cj 则展示了同一功能的另一种时间格式化写法方便对比学习。编译时通过--export log指定包名即可让其他文件引用。六、获取完整示例代码配套仓库包含全书 27 章示例可直接克隆使用git clone https://gitcode.com/Cangjie-SIG/cangjieyuyanshizhan-ZL编译选项与条件编译的完整示例集中在 code/Chapter26/ 目录调试相关的cjdbg命令则可在 code/Chapter27/ 中继续学习。小结cjc compile是仓颉开发的起点——用-opt调优化、用-DWhen做条件编译、用--test跑测试、用--export/--import组织包。掌握这张速查表再配合《仓颉语言实战》第26章的逐行示例即可独立完成从编写到发布的完整编译流程。【免费下载链接】仓颉语言实战-张磊仓颉语言实战由张磊编写清华大学出版社出版。 该书践行“零基础入门仓颉语言”的理念具有内容通俗易懂知识点循序渐进的特点可以帮助读者快速掌握仓颉编程语言。项目地址: https://gitcode.com/Cangjie-SIG/cangjieyuyanshizhan-ZL创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考
企业数字化 ERP 产品动态
相关推荐
LiteRT-LM 完整指南:把大语言模型推理搬到手机、电脑和边缘设备 LiteRT-LM 完整指南:把大语言模型推理搬到手机、电脑和边缘设备 【免费下载链接】LiteRT-LM LiteRT-LM is Googles production-ready, high-performance, open-source inference framework for deploying Large Language Models on edge devices. 项目地址: https… · 2026/9/24 17:10:01
PocketFlow 向量数据库实战指南:7 大主流向量检索方案选型对比与 Python 接入代码 人工智能大模型AI Agent工作流自动化RAG 【免费下载链接】PocketFlow Pocket Flow: 100-line LLM framework. Let Agents build Agents! 项目地址: https://gitcode.com/gh_mirrors/poc/PocketFlow 点击查看 免费下载 导读
在 LLM 应用中,向量检索是 R… · 2026/9/24 17:10:01
2026年成都GEO服务商横评:五类机构的商业模式、能力边界与适配场景 打开豆包或者DeepSeek,问一句"成都哪家做品牌营销比较靠谱",回答里出现的几个名字,正在影响一批企业的采购判断。对成都企业来说,问题已经不是要不要做GEO,而是在五种不同形态的服务机构之间,怎么… · 2026/9/24 17:09:55
Unity Addressables 异步操作句柄详解:加载、释放与内存管理实践 从 AssetBundle 时代靠手写加载流程、自己维护依赖树和引用计数,到切到 Addressables 之后只需要对着一个异步句柄操作,这个过渡期最容易让人懵掉的就是“Handle”到底是个什么东西。AssetBundle 那套逻辑里,我们习惯了“先加载 bundle&#… · 2026/9/24 19:07:53
地面油污水渍检测数据集:2093张图与2563个框的YOLO训练实战 简介:这份目标检测数据集面向环境监控、工业现场安全检测方向的研究者与算法工程师,聚焦地面油污水渍的识别与定位任务。数据包共2000个文件,以1999个VOC格式xml标注文件和1个说明txt为主,压缩包约70.05MB,图片为jpg格… · 2026/9/24 19:07:53
蓝牙耳机排行榜水太深?拆解六大品牌与选购避坑指南 排行榜这东西,我劝你别只看名次。尤其是“蓝牙耳机排行榜10强”这类标题,隔三差五就刷屏一次,点进去要么是电商销量汇总,要么是小编按自己的喜好排的。真正的问题在于:销量高和口碑好,很多时候是两拨不同的… · 2026/9/24 19:07:53
XSS攻击原理与防御:从信任边界到三层防护体系 1. XSS 攻击的本质:这不是一个注入问题,而是一个信任边界问题做前端这几年,我见过太多把 XSS 当"小事"的团队。问起来都是"我们做了输入过滤呀",结果呢?攻击者在 URL 参数里塞一段 payload&#x… · 2026/9/24 19:07:53
全色影像水体提取:阈值分割实战指南与精度验证 简介:这份资源面向遥感图像处理、地理信息系统与环境监测方向的初学者和工程实践者,聚焦如何利用阈值分割技术从全色影像中快速识别并提取水体区域。全色影像空间分辨率高、地表细节丰富,是水体检测的重要数据源,而阈值分割作为最… · 2026/9/24 19:07:53
彻底卸载流氓软件:从识别、清理到卡顿优化全攻略 弄电脑这些年,我见过太多人因为"卸不干净"而重装系统,也有人愁眉苦脸地问"怎么我装了杀毒软件电脑还这么卡"——结果我过去一看,系统里躺着七八个全家桶软件,光启动项就有十几个,能不卡吗。今天这… · 2026/9/24 19:07:46
基于YOLOv8的渔船作业监控系统:从环境搭建到边缘部署全流程 简介:这是一套面向计算机、人工智能、自动化等专业学生与教师的毕业设计级项目资源,围绕YOLOv8实现渔船作业监控系统,可用于毕设、课程设计、大作业或项目立项演示。压缩包共97个文件,约24.21MB,以70个Python源码文件为… · 2026/9/24 0:00:13
1D-CNN时间序列建模实战:从Conv1d原理到工业落地 简介:面向时间序列数据建模的一维卷积神经网络完整实现,适合深度学习入门者及需要快速验证时序模型的研究者,能够从音频、文本、传感器或股价等序列中挖掘局部特征与时间依赖。压缩包体积很小,只有3KB,内含3个Python脚… · 2026/9/24 0:00:26
柔软的L:汉语语流中被忽视的舌肌张力控制 1. 这个“L”不是字母表里的L,而是舌尖上的L最近在几个方言群和语音教学社群里,反复看到有人发一句:“也说字母L:柔软的长舌”。初看以为是英语发音课笔记,点开才发现全是方言爱好者、播音系学生、语言康复师甚至戏曲演… · 2026/9/24 0:00:44