☰
Linux 交叉构建 ohos-aarch64 仓颉 SDK:环境搭建、全组件编译与打包完整指南
2026/10/14 16:05:25 网站建设 项目流程
  • 文档
  • 教程
  • 构建工具

【免费下载链接】cangjie_build

仓颉SDK集成构建指导书。

项目地址:https://gitcode.com/Cangjie/cangjie_build
点击查看免费下载

本文基于 Cangjie SDK 集成构建指导书(cangjie_build)中的 Linux → OHOS 交叉构建指南,讲解在 Linux x86_64 系统上搭建完整构建环境、交叉编译ohos-aarch64目标平台的仓颉编译器(cjc)、调试器(cjdb)、运行时、标准库、STDX 扩展库与 cjpm/cjfmt/cjprof/cjcompat 工具集,并最终打包出cangjie-sdk与cangjie-stdx两个发行件的全过程。读完本文,你可以独立完成一次可验证的 OHOS 目标仓颉 SDK 构建,并理解每个编译参数(如--target-toolchain、--target-sysroot、OPENSSL_PATH)背后的依赖关系。

一、构建概述

1.1 构建目标与适用场景

该指南(原文为 doc_en/linux_cross_ohos.md,中文对照版见 docs/linux_cross_ohos.md)面向的目标是:

  • 在 Linux 系统上搭建仓颉 SDK 构建环境;
  • 交叉构建一个包含全部组件的ohos-aarch64仓颉 SDK(即编译产物运行在 OpenHarmony/OpenHarmony aarch64 设备上,而构建本身发生在 x86_64 Linux 主机上)。

在整个构建指导书中,它属于“Linux → OHOS 交叉构建”路线。根据 README.md 的说明,构建指导书基于 Ubuntu 22.04 等高版本操作系统,构建出的仓颉 SDK 只能运行在对应的目标系统上;若需要在更低版本系统运行,需要在更低版本系统上构建,步骤与复杂度都会增加。同仓库还提供 Linux 原生 OHOS 构建 等文档构建包含更多组件(cjlint、cjcov、cjtrace-recover、lspserver 等)的完整linux-ohosSDK,二者共享相同的工具链准备流程。

1.2 构建流程全景

原文档给出的构建流水线分为 5 个阶段:

对应到实际操作,五个阶段依次是:准备环境(系统工具 + OHOS 工具链 + 环境变量)→ 获取仓颉源码(4 个代码仓库)→ 编译编译器与调试器 → 编译运行时 → 编译标准库 → 编译 STDX 扩展库 → 编译工具集(cjpm、cjfmt、cjprof、cjcompat)→ 组织打包(SDK 包 + STDX 包)→ 运行 Hello, Cangjie 验证。

1.3 关键注意事项

原文档明确列出了 4 条关键约束,直接影响构建是否成功:

注意事项说明
环境隔离所有自定义依赖都安装在/opt/buildtools,避免污染系统路径
内存要求完整构建需要 ≥8GB 内存,建议额外添加 4GB 交换空间(swap)
网络要求首次构建需要下载约 3GB 数据,请确保稳定的网络连接
CPU 架构构建主机要求 x86_64

1.4 各组件对构建工具的版本依赖

交叉构建涉及的每个组件都需要特定版本的构建工具,构建依赖工具表(Build Dependency Tools)给出了 Linux 环境下组件与工具的对应关系(✅ 表示该组件依赖该工具):

构建工具依赖cjccjdbruntimestdcjpmcjfmtstdx
python: >3.7✅✅✅✅✅✅✅
googletest: >=1.12✅----------
LLVM: >=15.0.4 and <16✅✅✅✅--✅✅
binutils: >=2.38✅✅✅✅--✅✅
gcc: >=7.3.0✅✅✅✅--✅✅
cmake: >=3.16.5 and <4✅✅✅✅--✅✅
ninja: >1.10✅✅✅✅--✅✅
openssl: >3------✅----✅
swig: >4--✅----------

这张表解释了后文多处“为什么”:

  • 为什么系统工具里要装clang-15/libclang-15-dev并把/usr/lib/llvm-15/bin加入PATH—— 因为 cjc、cjdb、runtime、std、cjfmt 都要求 LLVM 版本落在[15.0.4, 16)区间;
  • 为什么标准库和 STDX 编译前必须设置OPENSSL_PATH—— 因为std与stdx依赖 OpenSSL 3+,而其他组件不依赖;
  • 为什么安装swig—— 因为调试器cjdb依赖 swig >4 生成绑定代码;
  • 为什么安装libgtest-dev—— cjc 构建需要 googletest >=1.12(本文命令通过--no-tests关闭了测试构建,但依赖仍需满足环境检查)。

二、环境准备

2.1 系统要求

  • 操作系统:以 Ubuntu 22.04 LTS 作为示例,其他版本也可以参考此流程;
  • 磁盘空间:≥50GB;
  • 内存:≥8GB(物理内存 + 交换空间);
  • 用户权限:普通用户 + sudo 权限。

可以选择基于官方提供的 Docker 环境进行构建。该镜像为 Ubuntu 18.04,已内置构建仓颉所需的全部系统工具与构建工具:

docker pull swr.cn-north-4.myhuaweicloud.com/cj-docker/cangjie_ubuntu18_x86_kernel:v2.9

注意区分两条路线:使用官方镜像时,后续OHOS_ROOT与OPENSSL_PATH的取值与本节的裸机取值不同(原文档中均以“若您正在使用官方镜像”单独标注),后文会分别给出。

2.2 安装系统工具

(1)使用华为镜像源(可选)

# 1. 备份配置文件: sudo cp -a /etc/apt/sources.list /etc/apt/sources.list.bak; # 2. 修改 sources.list 文件,将 http://archive.ubuntu.com 和 http://security.ubuntu.com # 替换为 http://mirrors.huaweicloud.com,可参考如下命令: sudo sed -i "s@http://.*archive.ubuntu.com@http://mirrors.huaweicloud.com@g" /etc/apt/sources.list; sudo sed -i "s@http://.*security.ubuntu.com@http://mirrors.huaweicloud.com@g" /etc/apt/sources.list; # 3. 更新索引 sudo apt-get update;

(2)安装系统工具

sudo apt update && sudo apt install -y \ tar unzip wget curl libcurl4 expat openssl make gcc g++ gettext \ nfs-common libtool sqlite3 zlib1g-dev libssl-dev cmake ninja-build\ libcurl4-openssl-dev sudo autoconf build-essential rapidjson-dev \ texinfo binutils expat libelf-dev libdwarf-dev openssh-client ssh \ dos2unix libxext-dev libxtst-dev libxt-dev libcups2-dev clang clang-15 libedit-dev\ libxrender-dev zip bzip2 libopenmpi-dev vim gdb lldb libclang-15-dev libgtest-dev\ rpm patch libtinfo5 cpio rpm2cpio libncurses5 libncurses5-dev strace net-tools swig;

结合依赖工具表可以确认其中几个关键包的用途:clang-15、libclang-15-dev提供 LLVM 15 工具链(满足[15.0.4, 16)版本约束);libedit-dev是 cjdb 的依赖(cjdb 依赖libedit与 ncurses);swig服务于 cjdb 的绑定生成;libssl-dev提供 OpenSSL 开发头文件;ninja-build、cmake满足各组件对构建系统的版本要求;zip、bzip2则在第 7 章打包 STDX 的.zip产物时使用。

2.3 准备 ohos-aarch64 交叉工具链

交叉构建 OHOS 目标的最核心前提是:先构建出 OHOS 侧的交叉工具链与 musl sysroot。原文档将该步骤委托给独立的工具链构建指南:编译 ohos-aarch64 工具链(doc_en/linux_ohos_toolchain.md),该指南会引导你同步 OpenHarmony 源码、交叉编译 musl 与 openssl、构建ohos-sdk工具链,并把产物归集到OHOS_ROOT目录下。

工具链指南中“Copy Toolchain”一节(约 doc_en/linux_ohos_toolchain.md#L130-L169)揭示了OHOS_ROOT的内部结构,这正是理解后文所有--target-*参数的钥匙:

  • ${OHOS_ROOT}/prebuilts/clang/ohos/linux-x86_64/:Linux 主机上可用的 OHOS Clang 工具链(linux-x86_64表示工具链运行平台);
  • ${OHOS_ROOT}/out/sdk/obj/third_party/musl/sysroot/:OHOS 目标根文件系统,由 musl 的usr、sdk-native/os-irrelevant/sysroot/usr以及各架构(aarch64-linux-ohos、x86_64-linux-ohos)的 openssl 头文件与库合并而成,其中还包含clang/15.0.4的 libc++ 与 libc++abi。

因此本指南中--target-toolchain指向 OHOS Clang 的bin目录(交叉编译器可执行文件),--target-sysroot指向合并后的 musl sysroot(头文件与目标库),两者共同决定了交叉编译产物的 ABI 与链接结果。

工具链就绪后,设置指向它的环境变量:

export OHOS_ROOT=/opt/buildtools/ohos_root;

若您正在使用官方镜像,则使用下方设置:

export OHOS_ROOT=/opt/buildtools/ohos/ohos_root;

2.4 设置环境变量

(1)OpenSSL 环境变量设置

构建仓颉标准库依赖OpenSSL 3+。2.2 节安装系统工具时已经装入了 OpenSSL 库,现在需要设置OPENSSL_PATH环境变量。

第一步:定位 OpenSSL 的 lib 目录。库文件位置默认在/usr/lib/x86_64-linux-gnu/(x86_64),验证方法:

# 查找 libssl.so ls /usr/lib/x86_64-linux-gnu/libssl.so* # 查找 libcrypto.so ls /usr/lib/x86_64-linux-gnu/libcrypto.so*

第二步:设置OPENSSL_PATH环境变量。

下方示例中的/path/to/openssl-3.x需替换为你实际的openssllib 目录

export OPENSSL_PATH=/path/to/openssl-3.x export LD_LIBRARY_PATH=$OPENSSL_PATH:$LD_LIBRARY_PATH

若您正在使用官方镜像,则使用下方设置:

# x86_64 export OPENSSL_PATH=${BUILD_ROOT}/openssl-3.0.9/lib64;
(2)其他环境变量设置

在执行后续步骤前,配置以下环境变量:

export PATH=/usr/lib/llvm-15/bin:$PATH; # 将 clang-15 加入环境变量 # 架构名 export ARCH=x86_64 # 或 aarch64 # Cangjie SDK 版本号 export CANGJIE_VERSION=1.0.0 # Stdx 版本号 export STDX_VERSION=1 export SDK_NAME=ohos-aarch64

各变量用途:ARCH与CANGJIE_VERSION、STDX_VERSION、SDK_NAME共同决定第 7 章打包产物的文件命名(如cangjie-sdk-ohos-aarch64-1.0.0.tar.gz、cangjie-stdx-ohos-aarch64-1.0.0.1.zip);PATH前置/usr/lib/llvm-15/bin是为了让各组件的build.py找到符合版本约束的 clang-15。

三、源码准备

3.1 创建工作区

下方示例中的/path/to/workspace需替换为你用于构建仓颉 SDK 的工作目录

export WORKSPACE=/path/to/workspace mkdir -p $WORKSPACE; cd $WORKSPACE;

3.2 获取仓颉源码

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(编译器 cjc 与调试器 cjdb,以及最终 SDK 的组装输出目录output/output-aarch64-linux-ohos)、cangjie_runtime(运行时与标准库,其中 stdlib 位于cangjie_runtime/stdlib)、cangjie_tools(cjpm、cjfmt、cjprof、cjcompat 等工具)、cangjie_stdx(STDX 扩展库)。

四、构建流程

4.1 构建仓颉编译器与调试器

cd $WORKSPACE/cangjie_compiler; python3 build.py clean; python3 build.py build -t release --no-tests -v ${CANGJIE_VERSION}; python3 build.py build -t release \ -v ${CANGJIE_VERSION} \ --product cjc \ --no-tests \ --target ohos-aarch64 \ --target-toolchain ${OHOS_ROOT}/prebuilts/clang/ohos/linux-x86_64/llvm/bin \ --target-sysroot ${OHOS_ROOT}/out/sdk/obj/third_party/musl/sysroot \ --build-cjdb; python3 build.py build -t release \ --product libs \ --target ohos-aarch64 \ --target-toolchain ${OHOS_ROOT}/prebuilts/clang/ohos/linux-x86_64/llvm/bin \ --target-sysroot ${OHOS_ROOT}/out/sdk/obj/third_party/musl/sysroot; python3 build.py install; python3 build.py install --host ohos-aarch64; cp -Rn output-aarch64-linux-ohos/* output;

各步骤与参数含义:

步骤说明
build.py clean清理历史构建产物,保证干净构建
build -t release --no-tests -v ${CANGJIE_VERSION}构建主机侧(host)release 组件,--no-tests跳过测试目标,-v写入版本号
--product cjc ... --build-cjdb交叉构建 cjc,并同步构建调试器 cjdb;--target ohos-aarch64指定目标平台,--target-toolchain指向 OHOS Clang 的bin目录,--target-sysroot指向 musl sysroot
--product libs --target ohos-aarch64交叉构建 cjc 依赖的库文件(同样使用 OHOS 工具链与 sysroot)
install/install --host ohos-aarch64分别安装主机侧产物与 ohos-aarch64 目标侧产物
cp -Rn output-aarch64-linux-ohos/* output将 OHOS 目标产物并入output统一输出目录(-Rn表示递归且不覆盖已有文件),为后续 runtime/stdlib 的产物归集做准备

验证安装:

source output/envsetup.sh; cjc -v;

output/envsetup.sh由安装步骤生成,source后cjc -v应打印仓颉编译器版本信息,说明主机侧编译器可用。

4.2 构建仓颉运行时

cd $WORKSPACE/cangjie_runtime/runtime; python3 build.py clean; python3 build.py build -t release -v ${CANGJIE_VERSION}; python3 build.py install; python3 build.py build -t release \ --target ohos-aarch64 \ --target-toolchain ${OHOS_ROOT} \ -v ${CANGJIE_VERSION}; python3 build.py install; cp -R output/common/linux_release_x86_64/{lib,runtime} ${WORKSPACE}/cangjie_compiler/output; cp -R output/common/linux_ohos_release_aarch64/{lib,runtime} ${WORKSPACE}/cangjie_compiler/output; cp -R output/common/linux_ohos_release_aarch64/{lib,runtime} ${WORKSPACE}/cangjie_compiler/output-aarch64-linux-ohos;

运行时采用“双目标构建”:先构建主机侧(x86_64 Linux)runtime 并安装,再交叉构建ohos-aarch64目标 runtime。注意此处--target-toolchain直接传${OHOS_ROOT}(工具链指南已将 clang 与 sysroot 按约定结构归集到该目录下),与编译器构建中显式指向prebuilts/clang/ohos/linux-x86_64/llvm/bin的写法不同,这从各build.py的参数解析方式看属于两种等价的工具链定位约定。

最后三行cp将构建输出的lib与runtime目录分别归集到cangjie_compiler/output(SDK 组装目录)与output-aarch64-linux-ohos(OHOS 目标输出目录),使编译器、运行时的产物在同一个目录树下汇总,供第 7 章统一打包。

4.3 构建仓颉标准库

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 build -t release \ --target ohos-aarch64 \ --target-lib=${WORKSPACE}/cangjie_runtime/runtime/output \ --target-toolchain ${OHOS_ROOT}/prebuilts/clang/ohos/linux-x86_64/llvm/bin \ --target-sysroot ${OHOS_ROOT}/out/sdk/obj/third_party/musl/sysroot; python3 build.py install; cp -R output/* ${WORKSPACE}/cangjie_compiler/output/; cp -R output/* ${WORKSPACE}/cangjie_compiler/output-aarch64-linux-ohos;

标准库同样构建两份:主机侧与ohos-aarch64目标侧。--target-lib参数重复传入两个库路径——runtime 的输出目录(标准库链接运行时库)与OPENSSL_PATH(标准库链接 OpenSSL,这正是依赖表中std行标记openssl: >3的直接体现)。构建完成后将output/*归集进编译器的output与output-aarch64-linux-ohos目录,完成 SDK 内容主体的组装。

4.4 构建 STDX 扩展库

cd ${WORKSPACE}/cangjie_stdx; python3 build.py clean; python3 build.py build -t release \ --target-lib=${OPENSSL_PATH} \ --target ohos-aarch64 \ --target-sysroot ${OHOS_ROOT}/out/sdk/obj/third_party/musl/sysroot \ --target-toolchain ${OHOS_ROOT}/prebuilts/clang/ohos/linux-x86_64/llvm/bin; python3 build.py install; export CANGJIE_STDX_PATH=${WORKSPACE}/cangjie_stdx/target/linux_ohos_aarch64_cjnative/static/stdx;

STDX 只针对ohos-aarch64目标构建(依赖表中stdx仅标记了 LLVM 与 openssl 依赖,故传入--target-lib=${OPENSSL_PATH})。安装后的产物位于cangjie_stdx/target/linux_ohos_aarch64_cjnative/static/stdx,将其导出为CANGJIE_STDX_PATH供后续引用;第 7 章的 STDX 打包直接取target/linux_ohos_aarch64_cjnative目录。

4.5 构建工具集

(1)cjpm(包管理器,交叉构建)
cd ${WORKSPACE}/cangjie_tools/cjpm/build; python3 build.py clean; python3 build.py build -t release --target ohos-aarch64; python3 build.py install; mkdir -p ${WORKSPACE}/cangjie_compiler/output-aarch64-linux-ohos/tools/config; cp $WORKSPACE/cangjie_tools/cjpm/dist/cjpm ${WORKSPACE}/cangjie_compiler/output-aarch64-linux-ohos/tools/bin; mv $WORKSPACE/cangjie_tools/cjpm/dist/*.toml ${WORKSPACE}/cangjie_compiler/output-aarch64-linux-ohos/tools/config;

cjpm 以--target ohos-aarch64交叉构建,产物dist/cjpm放入 SDK 的tools/bin,dist/*.toml配置文件移入tools/config。

(2)cjfmt(代码格式化工具,交叉构建)
source ${WORKSPACE}/cangjie_compiler/output-aarch64-linux-ohos/envsetup.sh; export PATH=${OHOS_ROOT}/prebuilts/clang/ohos/linux-x86_64/llvm/bin:$PATH; # 将 ohos 工具链加入环境变量 cd ${WORKSPACE}/cangjie_tools/cjfmt/build; python3 build.py clean; python3 build.py build -t release --target ohos-aarch64 --target-sysroot ${OHOS_ROOT}/out/sdk/obj/third_party/musl/sysroot; python3 build.py install; cp $WORKSPACE/cangjie_tools/cjfmt/build/build/bin/cjfmt ${WORKSPACE}/cangjie_compiler/output-aarch64-linux-ohos/tools/bin; cp $WORKSPACE/cangjie_tools/cjfmt/config/*.toml ${WORKSPACE}/cangjie_compiler/output-aarch64-linux-ohos/tools/config;

注意 cjfmt 构建前的两个前置动作:先sourceOHOS 输出目录的envsetup.sh,再把 OHOS Clang 的bin目录前置到PATH——这正对应依赖表中cjfmt对 LLVM >=15.0.4 <16 的要求:交叉构建 cjfmt 时必须使用 OHOS 侧的 Clang 15,而不是主机默认编译器。

(3)cjprof(性能分析工具,主机侧构建)
cd ${WORKSPACE}/cangjie_tools/cjprof/build; python3 build.py build -t release; python3 build.py install; cp $WORKSPACE/cangjie_tools/cjprof/dist/bin/cjprof ${WORKSPACE}/cangjie_compiler/output-aarch64-linux-ohos/tools/bin cp $WORKSPACE/cangjie_tools/cjprof/dist/lib/* ${WORKSPACE}/cangjie_compiler/output-aarch64-linux-ohos/tools/lib; if [[ -d "$WORKSPACE/cangjie_tools/cjprof/static" ]]; then cp -Rf $WORKSPACE/cangjie_tools/cjprof/static cangjie/tools/config; fi
(4)cjcompat(互操作兼容工具,主机侧构建)
cd ${WORKSPACE}/cangjie_tools/cjcompat/build; python3 build.py build -t release; python3 build.py install; cp $WORKSPACE/cangjie_tools/cjcompat/dist/bin/cjcompat ${WORKSPACE}/cangjie_compiler/output-aarch64-linux-ohos/tools/bin

从源码组织方式看(原文档命令未带--target参数),cjprof 与 cjcompat 是直接在构建主机上编译的工具,编译后把可执行文件与运行库复制进 SDK 的tools/bin、tools/lib目录;而 cjpm 与 cjfmt 需要面向ohos-aarch64目标交叉构建。四种工具最终都归集到output-aarch64-linux-ohos/tools下,成为 SDK 包的一部分。

五、组织并打包文件

5.1 组织并打包 SDK

# 清空历史构建 mkdir -p $WORKSPACE/software; rm -rf $WORKSPACE/software/*; cd $WORKSPACE/software; # 拷贝 cangjie 目录 cp -R $WORKSPACE/cangjie_compiler/output-aarch64-linux-ohos cangjie; cp $WORKSPACE/cangjie_compiler/LICENSE cangjie; cp $WORKSPACE/cangjie_compiler/Open_Source_Software_Notice.docx cangjie; # 打包和设置权限 chmod -R 750 cangjie tar --format=gnu -zcvf cangjie-sdk-${SDK_NAME}-${CANGJIE_VERSION}.tar.gz cangjie; chmod 550 cangjie-sdk-${SDK_NAME}-${CANGJIE_VERSION}.tar.gz;

打包内容即前面各步骤归集完成的output-aarch64-linux-ohos(含编译器、运行时、标准库与 tools),并附带LICENSE与开源软件声明Open_Source_Software_Notice.docx。按默认环境变量,最终产物为cangjie-sdk-ohos-aarch64-1.0.0.tar.gz;tar --format=gnu指定 GNU tar 归档格式以保证解压兼容性。

5.2 组织并打包 Stdx

cd $WORKSPACE/software; # 拷贝 stdx 目录 cp -r $WORKSPACE/cangjie_stdx/target/linux_ohos_aarch64_cjnative .; cp $WORKSPACE/cangjie_stdx/LICENSE linux_ohos_aarch64_cjnative; cp $WORKSPACE/cangjie_stdx/Open_Source_Software_Notice.docx linux_ohos_aarch64_cjnative; chmod -R 750 linux_ohos_aarch64_cjnative; zip -qr cangjie-stdx-${SDK_NAME}-${CANGJIE_VERSION}.${STDX_VERSION}.zip linux_${ARCH}_cjnative; chmod 550 cangjie-stdx-${SDK_NAME}-${CANGJIE_VERSION}.${STDX_VERSION}.zip;

STDX 单独成包(zip 格式),命名规则中同时包含 SDK 名、Cangjie 版本号与 STDX 版本号,即默认得到cangjie-stdx-ohos-aarch64-1.0.0.1.zip。

六、验证:运行 Hello, Cangjie 程序

检查生成的文件:

ls -lh $WORKSPACE/software # 应包含: # - cangjie-sdk-${SDK_NAME}-${CANGJIE_VERSION}.tar.gz # - cangjie-stdx-${SDK_NAME}-${CANGJIE_VERSION}.${STDX_VERSION}.zip

验证 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

需要说明适用前提:这里验证的是 SDK 中主机侧工具链(cjc在构建主机上编译并运行hello);整个ohos-aarch64SDK 的价值在于其面向 OHOS aarch64 目标的编译器、运行时、标准库与工具集可在 OpenHarmony 开发链路上使用,构建出的 SDK 只能运行在对应的目标系统上(见 README.md 的通用说明)。控制台输出Hello, Cangjie即代表从环境准备、工具链、核心组件编译到打包的全链路构建成功。

七、关键参数速查表

参数 / 变量取值(默认示例)作用
OHOS_ROOT/opt/buildtools/ohos_root(官方镜像为/opt/buildtools/ohos/ohos_root)OHOS 交叉工具链根目录,由工具链构建指南生成
--target-toolchain${OHOS_ROOT}/prebuilts/clang/ohos/linux-x86_64/llvm/bin(runtime 构建中为${OHOS_ROOT})交叉编译使用的 Clang 工具链位置
--target-sysroot${OHOS_ROOT}/out/sdk/obj/third_party/musl/sysrootOHOS 目标根文件系统(musl + openssl 头文件/库)
OPENSSL_PATH主机 OpenSSL 3+ 的 lib 目录(官方镜像为${BUILD_ROOT}/openssl-3.0.9/lib64)标准库与 STDX 链接 OpenSSL 3+
ARCH/CANGJIE_VERSION/STDX_VERSION/SDK_NAMEx86_64/1.0.0/1/ohos-aarch64决定产物命名与打包目录名
--targetohos-aarch64目标平台标识
--target-libruntime 输出目录、${OPENSSL_PATH}链接依赖库的搜索路径(可多次传入)
--productcjc/libs编译器仓库中指定构建 cjc 可执行文件或其依赖库
--build-cjdb—在构建 cjc 的同时构建调试器
--no-tests—跳过测试目标构建
CANGJIE_STDX_PATH.../cangjie_stdx/target/linux_ohos_aarch64_cjnative/static/stdx指向构建好的 STDX 静态库

按 doc_en/linux_cross_ohos.md 的完整流程执行完环境准备、四仓库源码获取、六大构建步骤、两次打包与一次 Hello 验证后,即可得到可分发的cangjie-sdk-ohos-aarch64-<版本>.tar.gz与cangjie-stdx-ohos-aarch64-<版本>.<STDX版本>.zip。如需构建包含 cjlint、cjcov、lspserver 等更多组件的完整linux-ohosSDK,可参考同仓库的 doc_en/linux_ohos.md;若需同时构建 Windows 目标的组合,则参考 doc_en/linux_cross_windows_ohos.md。

  • 文档
  • 教程
  • 构建工具

【免费下载链接】cangjie_build

仓颉SDK集成构建指导书。

项目地址:https://gitcode.com/Cangjie/cangjie_build
点击查看免费下载

相关推荐

创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考

需要专业的网站建设服务?

联系我们获取免费的网站建设咨询和方案报价,让我们帮助您实现业务目标

立即咨询