Android ndk 使用Android ndk构建时出现输入/输出错误

Android ndk 使用Android ndk构建时出现输入/输出错误,android-ndk,Android Ndk,使用Android NDK R10E,我试图为所有受支持的ABI构建一个共享库,但我发现一些但不是所有ABI出现以下错误: [armeabi] SharedLibrary : libMyLib.so /home/user/android-ndk-r10e/toolchains/arm-linux-androideabi-4.8/prebuilt/linux-x86_64/bin/../lib/gcc/arm-linux-androideabi/4.8/../../../../arm-linux-

使用Android NDK R10E,我试图为所有受支持的ABI构建一个共享库,但我发现一些但不是所有ABI出现以下错误:

[armeabi] SharedLibrary : libMyLib.so /home/user/android-ndk-r10e/toolchains/arm-linux-androideabi-4.8/prebuilt/linux-x86_64/bin/../lib/gcc/arm-linux-androideabi/4.8/../../../../arm-linux-androideabi/bin/ld:
fatal error: /home/user/source/MyLib/obj/local/armeabi/libMyLib.so: Input/output error
该项目成功地构建了arm64-v8a、mips和mips64,但由于armeabi、armeabi-v7a、x86和x86_64的上述错误而失败

我有一个静态库项目和另一个共享库项目,它们都为所有7个ABI成功构建


如果我比较obj/local/的内容,看一个生成的ABI和一个未生成的ABI,它们都包含除libMyLib.so之外的所有相同文件。

这两组ABI之间的区别在于,失败的使用ld.gold链接,工作的使用ld.bfd

尝试两件事:

  • 使用4.9工具链。希望它能修复错误
  • 如果这不起作用,您可以将
    -fuse ld=bfd
    添加到ldflags中,以便在默认为gold的架构上使用bfd

    • 在r15c中,同样的问题也发生在我身上。
      解决办法是复制 android-ndk-r15c/toolchains/arm-linux-AndroidABI-4.9/prebuild/linux-x86_64/arm-linux-AndroidABI/bin/ld.bfd over ld
      我不得不复制它,因为我无法轻松找到一种方法来指定此标志,以便CMake在检测编译器功能时使用它