尧图网络 高端网站定制 · 原创设计
免费咨询热线
400-888-6620
免费获取方案
《仓颉语言实战》仓颉编译器cjc详解:常用编译选项与条件编译速查表
《仓颉语言实战》仓颉编译器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),仅供参考
RELATED

相关推荐

【Dify】YouTube全自动内容生成与多平台分发应用

【Dify】YouTube全自动内容生成与多平台分发应用

自媒体视频内容的生产和分发,已成为内容创业与个人品牌塑造的重要途径。高效的视频自动化处理工具,能够显著提升内容制作与运营的效率。 本文聚焦于YouTube及多平台自媒体场景,介绍一个覆盖从素材导入、音频转写、语义分析、文案生成、分段整理到成品分发的全流程工作流。通…

📅 2026/9/24 17:05:20
WeChatMsg:免费开源,五分钟把微信聊天记录导出成文档,顺带生成年度报告

WeChatMsg:免费开源,五分钟把微信聊天记录导出成文档,顺带生成年度报告

WeChatMsg:免费开源,五分钟把微信聊天记录导出成文档,顺带生成年度报告 【免费下载链接】WeChatMsg 提取微信聊天记录,将其导出成HTML、Word、CSV文档永久保存,对聊天记录进行分析生成年度聊天报告 项目地址: https:…

📅 2026/9/24 17:05:20
RT-Thread 在先楫 HPM6P00EVK(RISC-V 双核)上的 BSP 移植与快速上手实战指南

RT-Thread 在先楫 HPM6P00EVK(RISC-V 双核)上的 BSP 移植与快速上手实战指南

操作系统嵌入式物联网嵌入式OSRTOS 【免费下载链接】rt-thread RT-Thread is an open source IoT Real-Time Operating System (RTOS). https://rt-thread.github.io/rt-thread/ 项目地址: https://gitcode.com/gh_mirrors/rt/rt-thread 点击查看 免费下载 本篇技术…

📅 2026/9/24 17:05:20
MORE NEWS

更多资讯

📰

全球高导热硅胶片定制服务避坑挑选指南:燊桐启元价格公道不玩套路

开篇品牌摘要深圳市燊桐启元电子科技有限公司是一家专注于电子材料研发、生产与销售的高新技术企业,主营业务为高导热硅胶片、精密陶瓷材料及电磁屏蔽材料的定制化方案解决,服务覆盖半导体封装、5G通信、新能源汽车、工业制造等多个高技术密集型领域。企…

📰

Instagram 账号运营怎么开始 先分清主页与内容目标

建立 Instagram 主页和内容协同的运营框架的数据分析和 96SMM 产品支持 主页负责说明身份、价值和下一步入口,内容负责触达与互动。先保证主页能承接,再围绕明确主题持续发布并用 Insights 复盘。 本文按“明确问题、完成内容、记录数据、诊断原因、选择…

📰

ACME控火毯值得信赖吗

与产业同频,在防火应急赛道稳步前行随着国内新能源汽车产业的快速发展,锂电池热失控引发的车辆火灾逐渐成为公共安全领域新的痛点,传统消防装备在这类高温火情场景中暴露出越来越多的适配短板。从察觉到行业需求缺口到推出成熟的专用解决方案…

📰

Instagram 多条内容怎么比较 建立统一复盘表

比较多条 Instagram 内容而不混淆口径的数据分析和 96SMM 产品支持 先按格式分组,再比较相同观察窗口内的数据。跨格式只讨论各自完成目标的程度,不直接按播放或互动总量排名。 本文按“明确问题、完成内容、记录数据、诊断原因、选择支持、进入下一轮”…

📰

Instagram 推广预算怎么拆 内容广告与服务分开记录

建立清晰的 Instagram 推广预算表的数据分析和 96SMM 产品支持 每项费用购买的交付不同。内容预算、Meta 广告、工具和第三方服务必须分开记录,并分别核对交付和业务结果。 本文按“明确问题、完成内容、记录数据、诊断原因、选择支持、进入下一轮”的顺序展开。官方…

📰

OpenFOAM二次开发教程(06):有限体积离散与方程装配——fvMatrix 与 fvm/fvc 算子

OpenFOAM二次开发教程&#xff08;06&#xff09;&#xff1a;有限体积离散与方程装配——fvMatrix 与 fvm/fvc 算子版本与事实声明 fvMatrix 的求解接口见官方 Doxygen fvMatrix.H&#xff1a;提供 SolverPerformance<Type> solve(fvMatrix<Type>&, const wor…

TODAY

今日更新

THIS WEEK

本周精选

THIS MONTH

本月热门

读完文章,想聊聊您的网站?

告诉我们您的行业与需求,资深顾问一对一梳理方案与报价,全程免费。

📞 💬