【问题标题】:ld unrecognised emulation mode aarch64linuxld 无法识别的仿真模式 aarch64linux
【发布时间】:2019-06-21 17:07:29
【问题描述】:

在 CMake 中运行 make 时,我只收到一条错误消息,提示 /usr/bin/ld 无法识别仿真模式 aarch64linux。

我正在尝试为 Android 构建 DualBootPatcher 应用程序,这是错误:

/usr/bin/ld: unrecognised emulation mode: aarch64linux Supported emulations: elf_x86_64 elf32_x86_64 elf_i386 elf_iamcu elf_l1om elf_k1om i386pep i386pe clang: error: linker command failed with exit code 1 (use -v to see invocation) make[5]: *** [misc/CMakeFiles/fsck-wrapper.dir/build.make:76: misc/fsck-wrapper] Error 1 make[4]: *** [CMakeFiles/Makefile2:1786: misc/CMakeFiles/fsck-wrapper.dir/all] Error 2 make[3]: *** [Makefile:163: all] Error 2 make[2]: *** [android/CMakeFiles/android-system_arm64-v8a.dir/build.make:111: android/android-system_arm64-v8a-prefix/src/android-system_arm64-v8a-stamp/android-system_arm64-v8a-build] Error 2 make[1]: *** [CMakeFiles/Makefile2:1868: android/CMakeFiles/android-system_arm64-v8a.dir/all] Error 2 make: *** [Makefile:163: all] Error 2>

我正在运行最新的 Cmake 和 binutils。还尝试重新安装 binutils。 我不是开发人员,所以如果你能解释一下就好了^^ 有人有解决办法吗?

【问题讨论】:

    标签: cmake linker ld


    【解决方案1】:

    从输出来自/usr/bin/ld 的事实可以清楚地看出问题所在。这是系统ld,而不是NDK 中包含的ld。您应该调查为什么要执行此 ld,例如通过 strace

    对我来说,原来是文件权限问题 - NDK zip 文件在没有执行权限的情况下提取,因此工具链二进制文件被默默忽略。几个chmod +x 之后,一切都很好。

    【讨论】:

    • 一段时间后,这成为正确答案。 chmod -R +x {NDK 目录},解决问题
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2016-04-13
    • 2021-09-18
    • 2010-10-14
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2020-05-01
    相关资源
    最近更新 更多