From c0439d08f098225c0bbcc432094c55743953d021 Mon Sep 17 00:00:00 2001 From: "jif2.zhang" Date: Mon, 14 Sep 2026 14:25:21 +0800 Subject: [PATCH] =?UTF-8?q?fix(ci):=20=E8=AE=BE=E7=BD=AE=20CXXFLAGS=3D-std?= =?UTF-8?q?lib=3Dlibc++=20=E4=BF=AE=E5=A4=8D=20duckdb=20android=20?= =?UTF-8?q?=E7=BC=96=E8=AF=91=E5=A4=B1=E8=B4=A5?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit 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. --- .gitea/workflows/android-build.yml | 5 +++++ 1 file changed, 5 insertions(+) diff --git a/.gitea/workflows/android-build.yml b/.gitea/workflows/android-build.yml index 290c097..52a0741 100644 --- a/.gitea/workflows/android-build.yml +++ b/.gitea/workflows/android-build.yml @@ -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 }}'