The error is:
[rquickjs-sys 0.9.0] cargo:rerun-if-changed=build.rs
[rquickjs-sys 0.9.0] cargo:rerun-if-env-changed=CARGO_FEATURE_BINDGEN
[rquickjs-sys 0.9.0] cargo:rerun-if-env-changed=CARGO_FEATURE_UPDATE_BINDINGS
[rquickjs-sys 0.9.0] cargo:rerun-if-env-changed=CARGO_FEATURE_DUMP_BYTECODE
[rquickjs-sys 0.9.0] cargo:rerun-if-env-changed=CARGO_FEATURE_DUMP_GC
[rquickjs-sys 0.9.0] cargo:rerun-if-env-changed=CARGO_FEATURE_DUMP_GC_FREE
[rquickjs-sys 0.9.0] cargo:rerun-if-env-changed=CARGO_FEATURE_DUMP_FREE
[rquickjs-sys 0.9.0] cargo:rerun-if-env-changed=CARGO_FEATURE_DUMP_LEAKS
[rquickjs-sys 0.9.0] cargo:rerun-if-env-changed=CARGO_FEATURE_DUMP_MEM
[rquickjs-sys 0.9.0] cargo:rerun-if-env-changed=CARGO_FEATURE_DUMP_OBJECTS
[rquickjs-sys 0.9.0] cargo:rerun-if-env-changed=CARGO_FEATURE_DUMP_ATOMS
[rquickjs-sys 0.9.0] cargo:rerun-if-env-changed=CARGO_FEATURE_DUMP_SHAPES
[rquickjs-sys 0.9.0] cargo:rerun-if-env-changed=CARGO_FEATURE_DUMP_MODULE_RESOLVE
[rquickjs-sys 0.9.0] cargo:rerun-if-env-changed=CARGO_FEATURE_DUMP_PROMISE
[rquickjs-sys 0.9.0] cargo:rerun-if-env-changed=CARGO_FEATURE_DUMP_READ_OBJECT
[rquickjs-sys 0.9.0] Ubuntu clang version 18.1.3 (1ubuntu1)
[rquickjs-sys 0.9.0] Target: aarch64-unknown-linux-android
[rquickjs-sys 0.9.0] Thread model: posix
[rquickjs-sys 0.9.0] InstalledDir:
[rquickjs-sys 0.9.0] ignoring nonexistent directory "/include"
[rquickjs-sys 0.9.0] ignoring duplicate directory "/usr/include/clang/18.1.3/include"
[rquickjs-sys 0.9.0] ignoring duplicate directory "/usr/local/include"
[rquickjs-sys 0.9.0] ignoring duplicate directory "/usr/include"
[rquickjs-sys 0.9.0] #include "..." search starts here:
[rquickjs-sys 0.9.0] #include <...> search starts here:
[rquickjs-sys 0.9.0] /usr/lib/llvm-18/lib/clang/18/include
[rquickjs-sys 0.9.0] /usr/local/include
[rquickjs-sys 0.9.0] /usr/include
[rquickjs-sys 0.9.0] End of search list.
[rquickjs-sys 0.9.0] /usr/include/stdio.h:28:10: fatal error: 'bits/libc-header-start.h' file not found
[rquickjs-sys 0.9.0]
[rquickjs-sys 0.9.0] thread 'main' panicked at /home/runner/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/rquickjs-sys-0.9.0/build.rs:311:39:
[rquickjs-sys 0.9.0] Unable to generate bindings: ClangDiagnostic("/usr/include/stdio.h:28:10: fatal error: 'bits/libc-header-start.h' file not found\n")
[rquickjs-sys 0.9.0] stack backtrace:
[rquickjs-sys 0.9.0] 0: rust_begin_unwind
[rquickjs-sys 0.9.0] 1: core::panicking::panic_fmt
[rquickjs-sys 0.9.0] 2: core::result::unwrap_failed
[rquickjs-sys 0.9.0] 3: core::result::Result<T,E>::expect
[rquickjs-sys 0.9.0] 4: build_script_build::bindgen
[rquickjs-sys 0.9.0] 5: build_script_build::main
[rquickjs-sys 0.9.0] 6: core::ops::function::FnOnce::call_once
[rquickjs-sys 0.9.0] note: Some details are omitted, run with `RUST_BACKTRACE=full` for a verbose backtrace.
error: failed to run custom build command for `rquickjs-sys v0.9.0`
note: To improve backtraces for build dependencies, set the CARGO_PROFILE_RELEASE_BUILD_OVERRIDE_DEBUG=true environment variable to enable debug information generation.
And I searched Github, the only relevant one is georust/gdal#574 (comment) .It mentioned maybe it's picking up the wrong sysroot.. But I wonder how to fix it.
The step to produce is very simple:
Cargo.toml:
[target.'cfg(target_os = "android")'.dependencies]
rquickjs = { version = "~0.9", features = ["bindgen"] }
.github/workflows/ci.yml:
name: Build Release
on:
push:
branch:
- master
jobs:
build-android:
name: Build android-arm64
runs-on: ubuntu-latest
steps:
- name: Checkout
uses: actions/checkout@v2
with:
fetch-depth: 1
- name: Check rust version
run: rustup --version
- name: Install target
run: rustup target add aarch64-linux-android
- name: Install ndk
run: cargo install cargo-ndk
- name: Build release
run: cargo ndk --target arm64-v8a --platform 28 build -vv --release
env:
RUST_BACKTRACE: 1
I created an example repository: xuxiaocheng0201/example-rquickjs-android.
The error is:
And I searched Github, the only relevant one is georust/gdal#574 (comment) .It mentioned
maybe it's picking up the wrong sysroot.. But I wonder how to fix it.The step to produce is very simple:
Cargo.toml:.github/workflows/ci.yml:I created an example repository: xuxiaocheng0201/example-rquickjs-android.