fix(ci): 设置 CXXFLAGS=-stdlib=libc++ 修复 duckdb android 编译失败
Android Build & Publish / build-android (push) Failing after 18m56s
Docker Build and Push / build-image (push) Has been cancelled

libduckdb-sys 0.10.2 build.rs 同时添加 -stdlib=libc++ 和 -stdlib=libstdc++
(flag_if_supported), 两者在 clang 上均被支持, 后者覆盖前者成为生效 stdlib.
NDK 不含 libstdc++ 头文件, 导致 fatal error: 'string' file not found.

cc 1.4.5 在 compile_object 最后追加 CXXFLAGS 环境变量值 (lib.rs:2191),
故设置 CXXFLAGS=-stdlib=libc++ 能确保 libc++ 为最终生效 stdlib.
This commit is contained in:
jif2.zhang
2026-09-14 14:25:21 +08:00
parent 2167a7a10b
commit c0439d08f0
+5
View File
@@ -16,6 +16,11 @@ jobs:
env:
# 固定工具链版本, 便于 actions/cache 命中
NDK_VERSION: '27.2.12479018'
# libduckdb-sys 0.10.2 build.rs 同时添加 -stdlib=libc++ 和 -stdlib=libstdc++,
# 在 clang 上两者都被支持, libstdc++ 覆盖 libc++ 成为生效选项, 但 NDK 不含 libstdc++ 头文件,
# 导致 fatal error: 'string' file not found. 设置 CXXFLAGS 确保 -stdlib=libc++ 为最终生效值
# (cc 1.4.5 在 compile_object 最后追加 CXXFLAGS, 能覆盖 build.rs 的 flag_if_supported)
CXXFLAGS: '-stdlib=libc++'
# 配置中心地址与 token (Gitea secrets; URL 未设时回退默认地址)
CONFIG_CENTER_URL: '${{ secrets.CONFIG_CENTER_URL }}'
CONFIG_CENTER_TOKEN: '${{ secrets.CONFIG_CENTER_TOKEN }}'