ARTICLE DETAIL

资讯详情

深耕网站建设、视觉设计与SEO优化的一线实战洞察。

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

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),仅供参考
返回列表