Android NDK 尝试使用 sdk/ndk-bundle/sources/cxx-STL/gnu-libstdc++ 进行构建/但 gnu-libstdc++ 不存在

标签 android android-ndk llvm

我正在尝试构建一个具有 native 组件的旧 Android 项目。

当我尝试构建项目时出现以下错误:

Task :app:externalNativeBuildDebug FAILED
Build myappNative x86
[1/1] Linking CXX shared library ../../../../build/intermediates/cmake/debug/obj/x86/libmyappNative.so
FAILED: : && /Users/Can/Library/Android/sdk/ndk-bundle/toolchains/llvm/prebuilt/darwin-x86_64/bin/clang++  --target=i686-none-linux-android16 --gcc-toolchain=/Users/Can/Library/Android/sdk/ndk-bundle/toolchains/llvm/prebuilt/darwin-x86_64 --sysroot=/Users/Can/Library/Android/sdk/ndk-bundle/toolchains/llvm/prebuilt/darwin-x86_64/sysroot -fPIC -g -DANDROID -fdata-sections -ffunction-sections -funwind-tables -fstack-protector-strong -no-canonical-prefixes -mstackrealign -fno-addrsig -Wa,--noexecstack -Wformat -Werror=format-security   -O0 -fno-limit-debug-info  -Wl,--exclude-libs,libgcc.a -Wl,--exclude-libs,libatomic.a -static-libstdc++ -Wl,--build-id -Wl,--warn-shared-textrel -Wl,--fatal-warnings -Wl,--no-undefined -Qunused-arguments -Wl,-z,noexecstack -shared -Wl,-soname,libmyappNative.so -o ../../../../build/intermediates/cmake/debug/obj/x86/libmyappNative.so CMakeFiles/myappNative.dir/src/main/cpp/src/com_myapp_system_Native.cpp.o CMakeFiles/myappNative.dir/src/main/cpp/src/sha256.c.o  -llog -latomic -lm "/Users/Can/Library/Android/sdk/ndk-bundle/sources/cxx-stl/gnu-libstdc++/4.9/libs/x86/libgnustl_static.a" && :
clang++: error: no such file or directory: '/Users/Can/Library/Android/sdk/ndk-bundle/sources/cxx-stl/gnu-libstdc++/4.9/libs/x86/libgnustl_static.a'
ninja: build stopped: subcommand failed.

这很明显:

错误:没有这样的文件或目录:'/Users/Can/Library/Android/sdk/ndk-bundle/sources/cxx-STL/gnu-libstdc++/4.9/libs/x86/libgnuSTL_static.a'

当我转到 /Users/Can/Library/Android/sdk/ndk-bundle/sources/cxx-STL/ 时,只有以下内容:

  • llvm-libc++
  • llvm-libc++abi
  • 系统

没有这样的 gnu-libstdc++ 目录。我做错了什么?

更新:与此同时,我已根据 Alex Cohn 的建议切换回旧的 NDK r17c。它有效,尽管 NDK 已过时,这只是一个临时解决方法,而不是长期解决方案。

最佳答案

自该项目发布以来,NDK has dropped gnustl .您仍然可以下载 NDK r.17 或更早版本,或者您可以将您的项目改为使用 libc++_static

关于Android NDK 尝试使用 sdk/ndk-bundle/sources/cxx-STL/gnu-libstdc++ 进行构建/但 gnu-libstdc++ 不存在,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/57840093/

相关文章:

swift - 有什么简单的方法可以远程调试在(开发)服务器上运行的快速(vapor/perfect/kitura)应用程序?

c++ - 使用 clang 从 C++ 编译到 LLVM IR 时指定多个文件

Android 应用内结算错误 InvalidKeySpecException

android - 需要指导将现有的 C++ 代码集成到 Android NDK

android - 我对 pdftron 集成有疑问

android-ndk - cygwin 出错 : ffmpeg compile with ndk

android - 无法 dlopen,无法在 android 2.1 上加载库,但可以在 2.2+ 上加载

c - LLVM 不使用机器指令

java - Android Facebook 崩溃

android - 如何从属性文件中读取密码并使用它 build.gradle 文件?