新闻详情

新闻详情

首页 / 资讯中心 / 详情

macOS构建仓颉SDK完全教程:Xcode 15 + Homebrew环境配置到编译打包

发布时间:2026/11/8 18:46:14来源:尧图网络
macOS构建仓颉SDK完全教程:Xcode 15 + Homebrew环境配置到编译打包
macOS构建仓颉SDK完全教程Xcode 15 Homebrew环境配置到编译打包【免费下载链接】cangjie_build仓颉SDK集成构建指导书。项目地址: https://gitcode.com/Cangjie/cangjie_build在 macOS 上构建仓颉 SDKCangjie SDK其实并不复杂。本教程以macOS 14 Sonoma为例带你用Homebrew 环境配置Xcode 15完成仓颉 SDK 的完整构建流程——从依赖安装、环境变量设置到编译编译器、运行时、标准库、工具集最终打包并验证 Hello, Cangjie 程序。适合第一次接触仓颉构建的新手照着做即可出包。一、先看清构建流程全景整个 macOS 构建分为5 个阶段官方在 docs/macos.md 中给出了清晰的流程看板阶段主要任务1️⃣ 准备阶段准备环境、创建工作区2️⃣ 核心编译获取源码编译仓颉编译器cjc、调试器cjdb和运行时3️⃣ 库编译编译仓颉标准库、Stdx 扩展库4️⃣ 工具集编译cjpm、cjfmt、cjlint、cjcov、cjtrace-recover、hle、lspserver、cjprof、cjcompat5️⃣ 打包和验证组织打包 SDK 文件编译并运行 Hello, Cangjie 程序 提示构建出来的仓颉 SDK 只能在对应系统上运行。要在更低版本的 macOS 上运行需要到对应低版本系统上重新构建复杂度会上升。各版本运行环境说明可参考仓颉官网文档。二、环境配置macOS 系统要求与 Xcode 151. 硬件与系统要求操作系统macOS 14 Sonoma其他版本可参考本文流程磁盘空间≥ 50GB内存≥ 8GB物理内存 交换空间用户权限普通用户 sudo 权限芯片指令集务必按你的芯片架构aarch64或x86_64设置对应环境变量2. 依赖工具清单Homebrew 一键安装macOS 上各组件对构建工具的版本要求详见 docs/env.md。核心依赖包括Python 3.7、LLVM 16≥16.0.0 且 17、cmake≥3.16.5 且 4、ninja、openssl3、swig、bison 等。推荐使用 Homebrew 安装大部分依赖brew install python3 ninja llvm16 openssl3 bison googletest gnu-tar swig⚠️cmake 需要手动安装由于版本要求严格≥3.17 且 4官方建议从 CMake 官网下载 dmg 或 tar.gz 包手动安装并将cmake/bin加入PATH。3. Xcode 15 为什么重要在 macOS 构建矩阵中Xcode ≥15是objc interopObjective-C 互操作组件的必备依赖——如果你要构建包含全部组件的完整版仓颉 SDK这一步不能省。打开 Mac App Store安装 Xcode 15 或更新版本即可。三、设置环境变量最容易踩坑的一步官方强调构建前务必设置以下变量。1按芯片架构设置 SDK 变量export ARCHaarch64 # Apple 芯片用 aarch64Intel 芯片用 x86_64 export CANGJIE_VERSION1.0.0 # Cangjie SDK 版本 export STDX_VERSION1 # Stdx 版本 export SDK_NAMEmac-aarch64 # 或 mac-x642设置 Homebrew 工具链路径# 用 brew --cellar 命令查看Apple 芯片通常在 /opt/homebrew/Cellar # Intel 芯片通常在 /usr/local/Cellar export CELLAR_PATH/opt/homebrew/Cellar # 用 brew list --versions llvm16 查看具体版本号替换下面 16.x、3.x export PATH$CELLAR_PATH/llvm16/16.x/bin:$PATH export OPENSSL_PATH$CELLAR_PATH/openssl3/3.x/lib export LD_LIBRARY_PATH$OPENSSL_PATH:$LD_LIBRARY_PATH export DYLD_LIBRARY_PATH$OPENSSL_PATH:$DYLD_LIBRARY_PATH新手提醒版本号16.x、3.x必须替换成你实际安装的版本这是 macOS 构建报错的高发区。四、准备工作区并获取仓颉源码1创建工作区export WORKSPACE/path/to/workspace # 替换为你的构建工作目录 mkdir -p $WORKSPACE; cd $WORKSPACE;2克隆 4 个源码仓库git clone https://gitcode.com/Cangjie/cangjie_compiler.git -b main; git clone https://gitcode.com/Cangjie/cangjie_runtime.git -b main; git clone https://gitcode.com/Cangjie/cangjie_tools.git -b main; git clone https://gitcode.com/Cangjie/cangjie_stdx.git -b main;四个仓库各司其职cangjie_compiler编译器与调试器、cangjie_runtime运行时与标准库、cangjie_tools工具集、cangjie_stdx扩展库。五、编译流程从 cjc 到工具集每个组件的通用套路都是三件套python3 build.py clean→build→install。完整命令可对照 docs/macos.md 执行。1. 编译仓颉编译器和调试器第一步最关键cd $WORKSPACE/cangjie_compiler; python3 build.py clean; python3 build.py build -t release -v ${CANGJIE_VERSION} --no-tests --build-cjdb; python3 build.py install;验证是否装好source output/envsetup.sh; cjc -v; # 能输出版本号即成功2. 编译仓颉运行时cd $WORKSPACE/cangjie_runtime/runtime; python3 build.py clean; python3 build.py build -t release -v ${CANGJIE_VERSION}; python3 build.py install; cp -R output/common/darwin_release_${ARCH}/{lib,runtime} $WORKSPACE/cangjie_compiler/output;3. 编译标准库与 Stdx 扩展库标准库std编译时要把运行时输出目录和 openssl 路径传进去cd $WORKSPACE/cangjie_runtime/stdlib; python3 build.py clean; python3 build.py build -t release \ --target-lib$WORKSPACE/cangjie_runtime/runtime/output \ --target-lib$OPENSSL_PATH; python3 build.py install; cp -R output/* $WORKSPACE/cangjie_compiler/output/;Stdx 扩展库类似注意记录其输出路径cd $WORKSPACE/cangjie_stdx; python3 build.py clean; python3 build.py build -t release --target-lib$OPENSSL_PATH --include${WORKSPACE}/cangjie_compiler/include; python3 build.py install; export CANGJIE_STDX_PATH$WORKSPACE/cangjie_stdx/target/darwin_${ARCH}_cjnative/static/stdx;4. 编译 9 个仓颉工具工具集包括cjpm包管理、cjfmt格式化、cjlint静态检查、cjcov覆盖率、cjtrace-recover、hle语言服务扩展、LSP Server、cjprof性能分析、cjcompat。每个工具的流程统一进入cangjie_tools/工具名/build目录执行clean → build -t release → install再把产物拷贝到$WORKSPACE/cangjie_compiler/output/tools下。例如 cjpm 需要注意设置 rpathcd $WORKSPACE/cangjie_tools/cjpm/build; python3 build.py clean; python3 build.py build -t release --set-rpath loader_path/../../runtime/lib/darwin_${ARCH}_cjnative; python3 build.py install;其余 8 个工具的完整命令请对照官方指导书 docs/macos.md 中「4.5 编译仓颉工具集」一节逐段执行。六、组织打包生成最终 SDK 文件1打包仓颉 SDK 主包mkdir -p $WORKSPACE/software; rm -rf $WORKSPACE/software/*; cd $WORKSPACE/software; cp -R $WORKSPACE/cangjie_compiler/output cangjie; cp $WORKSPACE/cangjie_compiler/LICENSE cangjie; cp $WORKSPACE/cangjie_compiler/Open_Source_Software_Notice.docx cangjie; chmod -R 750 cangjie gtar --formatgnu -zcvf cangjie-sdk-${SDK_NAME}-${CANGJIE_VERSION}.tar.gz cangjie; chmod 550 cangjie-sdk-${SDK_NAME}-${CANGJIE_VERSION}.tar.gz;2打包 Stdx 扩展包cd $WORKSPACE/software; cp -r $WORKSPACE/cangjie_stdx/target/darwin_${ARCH}_cjnative ./; cp $WORKSPACE/cangjie_stdx/LICENSE darwin_${ARCH}_cjnative; cp $WORKSPACE/cangjie_stdx/Open_Source_Software_Notice.docx darwin_${ARCH}_cjnative; chmod -R 750 darwin_${ARCH}_cjnative; zip -qr cangjie-stdx-${SDK_NAME}-${CANGJIE_VERSION}.${STDX_VERSION}.zip darwin_${ARCH}_cjnative; chmod 550 cangjie-stdx-${SDK_NAME}-${CANGJIE_VERSION}.${STDX_VERSION}.zip;完成后$WORKSPACE/software目录中应有两个文件cangjie-sdk-mac-aarch64-1.0.0.tar.gzSDK 主包cangjie-stdx-mac-aarch64-1.0.0.1.zipStdx 扩展包七、终极验证跑通 Hello, Cangjie构建成功的标志就是能编译运行你的第一个仓颉程序cd $WORKSPACE; source $WORKSPACE/software/cangjie/envsetup.sh; echo main() { println(\Hello, Cangjie\) } hello.cj cjc hello.cj -o hello ./hello # 控制台输出Hello, Cangjie 看到Hello, Cangjie的那一刻说明你的 macOS 构建环境已完全打通八、延伸阅读macOS 交叉构建指南如果你不只是想构建 Mac 本机版 SDK这个项目同样提供了基于同一套 Homebrew 环境的交叉构建指导书示例环境均为 MacOS 14 SonomaMacOS → iOS 交叉构建docs/macos_ios.mdMacOS → Android 交叉构建docs/macos_android.mdMacOS → OHOS 交叉构建docs/macos_ohos.md各环境的依赖工具版本对照表见 docs/env.md全部构建指导的总索引见 README_zh.md。一句话总结装好 Xcode 15 和 Homebrew 依赖 → 按芯片架构设置环境变量 → 依次编译编译器、运行时、标准库、工具集 → 打包两个产物 → 跑通 Hello, Cangjie。跟着 docs/macos.md 一步步执行你就能在自己的 Mac 上构建出完整版仓颉 SDK。【免费下载链接】cangjie_build仓颉SDK集成构建指导书。项目地址: https://gitcode.com/Cangjie/cangjie_build创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考
网站建设高端定制企业官网
RELATED

相关资讯

更多精彩内容,欢迎继续阅读

较早相关资讯

最新相关资讯

【外设】之大彩串口显示屏 2026/11/7 13:27:02

【外设】之大彩串口显示屏

大彩串口屏初步使用 1 .官网下载 STM32 屏幕 GUI 设计资料 http://www.gz-dc.com/category/typeid/4112 找到 STM32 Keil 工程,移植相关代码因项目而异进行移植,由于项目简单,本人只对用到的指令接口进行修改。 比如:注意事项&…

阅读更多 →
无法下载Windows系统iso文件 2026/11/8 2:22:29

无法下载Windows系统iso文件

当我遇到这个问题的时候,我打开了一个网站: 登录 然后我打算下载的时候: 突然那个官方的连接就可以下载了:

阅读更多 →
【清华代码熊】DeepSeek V4.1 Flash 后训练详解 2026/11/8 8:25:50

【清华代码熊】DeepSeek V4.1 Flash 后训练详解

📌 上期解析了 DeepSeek V4.1 Flash 模型架构改进,本期解析 DeepSeek V4.1 Flash 预训练/后训练技术: 🌟 预训练:45T 文本 多模态混合语料、直接训练 sparse attention(取消 DeepSeek V4 的 dense 冷启动&…

阅读更多 →
Shuffle-R1: Efficient RL framework for Multimodal Large Language Models via Data-centric Dynamic ... 2026/11/7 22:37:56

Shuffle-R1: Efficient RL framework for Multimodal Large Language Models via Data-centric Dynamic ...

文章主要内容和创新点 主要内容 本文聚焦于多模态大语言模型(MLLM)强化学习(RL)训练中的效率问题,提出了一个名为Shuffle-R1的框架。研究发现,当前RL训练存在两个关键缺陷: 优势值坍缩(Advantage Collapsing):批次中大多数优势值集中在零附近,导致有效梯度信号被淹…

阅读更多 →
PRvL: Quantifying the Capabilities and Risks of Large Language Models for PII Redaction 2026/11/8 3:02:34

PRvL: Quantifying the Capabilities and Risks of Large Language Models for PII Redaction

一、文章主要内容总结 本文聚焦于利用大型语言模型(LLMs)实现个人身份信息(PII)脱敏的研究,旨在解决传统脱敏方法(如基于规则的系统、领域特定命名实体识别(NER)模型)泛化能力差、跨格式/跨语境适应性弱的问题。 研究通过全面评估多种LLM架构(包括密集型LLM(D-LLM…

阅读更多 →
LLaVA-RE: Binary Image-Text Relevancy Evaluation with Multimodal Large Language Model 2026/11/8 3:02:33

LLaVA-RE: Binary Image-Text Relevancy Evaluation with Multimodal Large Language Model

文章主要内容和创新点 主要内容 本文聚焦于二进制图像-文本相关性评估任务(判断图像与文本“相关”或“不相关”),针对该任务中文本格式多样、相关性定义随场景变化等挑战,提出了基于多模态大语言模型(MLLM)的解决方案LLaVA-RE。 模型设计:LLaVA-RE基于LLaVA 1.5架构,…

阅读更多 →

今日资讯

本周资讯

本月资讯

看完文章仍有疑问?

联系尧图顾问,获取一对一建站咨询

立即免费咨询 📞 400-888-8888
📞 ✉