How do I fix "ld: error: unable to find library -lgcc" when cross-compiling rust to android?

How do I fix "ld: error: unable to find library -lgcc" when cross-compiling rust to android?

我正在尝试让 Rust 在 android 上运行。但是,当我尝试交叉编译为 android 时,出现以下链接错误:

$ cargo build --target=arm-linux-androideabi
   Compiling <project> v0.1.0 (<project>)
error: linking with `/opt/android-sdk/ndk/23.0.7599858/toolchains/llvm/prebuilt/linux-x86_64/bin/armv7a-linux-androideabi31-clang` failed: exit status: 1

(very long toolchain command from cargo)

ld: error: unable to find library -lgcc
          clang-12: error: linker command failed with exit code 1 (use -v to see invocation)

我已经安装了 ndk 并将 .cargo/config 中的链接器更改为 android clang 链接器。我还尝试了具有相同结果的独立工具链。我使用的指南如下:https://mozilla.github.io/firefox-browser-architecture/experiments/2017-09-21-rust-on-android.html

当使用 crate-type = ["rlib"] 而不是 crate-type = ["cdylib"] 时交叉编译确实有效,但我需要一个 .so 文件而不是 .rlib 文件。

如果相关,我正在使用 Manjaro Linux。

更新:

我发现了以下 pull request:https://github.com/rust-lang/rust/pull/85806 切换到 ndk22 后它起作用了。我还没有尝试过拉取请求是否解决了问题(可能会解决)。