Skip to content

Commit 1d71820

Browse files
authored
Update Rustic Android Native Build.yaml
1 parent b8928aa commit 1d71820

1 file changed

Lines changed: 23 additions & 9 deletions

File tree

.github/workflows/Rustic Android Native Build.yaml

Lines changed: 23 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -1,3 +1,15 @@
1+
这次的错误是因为 Bash 变量名的限制:环境变量名中不能包含横杠 (-)。
2+
3+
在执行 export "CC_aarch64-linux-android=..." 时,Bash 认为这是一个非法的标识符。Rust 的 cc-rs 库实际上支持两种环境变量格式,而我们应该使用全大写且带下划线的标准格式(即 CC_AARCH64_LINUX_ANDROID)。
4+
5+
核心修复方案
6+
移除带横杠的变量名:只保留符合 Shell 规范的 TARGET_UPPER 变量(全大写 + 下划线)。
7+
8+
修复矩阵引用:确保所有 export 语句都指向有效的标识符。
9+
10+
以下是修复后的最终完整 YAML:
11+
12+
YAML
113
name: Build Rustic for Android
214

315
on:
@@ -41,32 +53,34 @@ jobs:
4153
run: |
4254
set -euo pipefail
4355
44-
# 1. 定位 NDK 工具链路径
56+
# 1. 定位 NDK 工具链
4557
NDK_DIR="${ANDROID_NDK_LATEST_HOME}"
4658
TOOLCHAIN="$NDK_DIR/toolchains/llvm/prebuilt/linux-x86_64"
4759
48-
# 2. 准备变量
60+
# 2. 构造符合 Shell 规范的变量名 (aarch64-linux-android -> AARCH64_LINUX_ANDROID)
61+
# 这样可以绕过 "not a valid identifier" 的错误
4962
TARGET_UPPER=$(echo ${{ matrix.rust_target }} | tr '[:lower:]' '[:upper:]' | tr '-' '_')
63+
5064
CLANG_BIN="$TOOLCHAIN/bin/${{ matrix.ndk_target }}${ANDROID_API}-clang"
5165
AR_BIN="$TOOLCHAIN/bin/llvm-ar"
5266
67+
echo "Building for: ${{ matrix.rust_target }}"
5368
echo "Using Clang: $CLANG_BIN"
54-
echo "Using AR: $AR_BIN"
5569
56-
# 3. 注入环境变量 (覆盖所有可能的编译器查找方式)
57-
# 修复 ring 库找不到编译器的问题
58-
export "CC_${{ matrix.rust_target }}=$CLANG_BIN"
70+
# 3. 注入环境变量
71+
# CC_<target> 和 AR_<target> 是 cc-rs 识别的标准格式
5972
export "CC_$TARGET_UPPER=$CLANG_BIN"
60-
export "AR_${{ matrix.rust_target }}=$AR_BIN"
6173
export "AR_$TARGET_UPPER=$AR_BIN"
74+
75+
# Cargo 寻找链接器的标准格式
6276
export "CARGO_TARGET_${TARGET_UPPER}_LINKER=$CLANG_BIN"
6377
64-
# 额外增加通用变量作为保底
78+
# 备用全局变量
6579
export CC="$CLANG_BIN"
6680
export AR="$AR_BIN"
6781
6882
# 4. 执行编译
69-
# 使用 --locked 确保依赖版本与原始项目一致
83+
# --locked 确保依赖锁定,避免环境差异导致编译失败
7084
cargo build --release --target ${{ matrix.rust_target }} --bin rustic
7185
7286
# 5. 裁剪体积

0 commit comments

Comments
 (0)