Skip to main content
 首页 » 编程设计

cmake之ld 无法识别的仿真模式 aarch64linux

2024年02月24日20hnrainll

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

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

/usr/bin/ld:无法识别的模拟模式:aarch64linux 支持的仿真: elf_x86_64 elf32_x86_64 elf_i386 elf_iamcu elf_l1om elf_k1om i386pep i386pe clang:错误:链接器命令失败,退出代码为 1(使用 -v 查看调用) make[5]:*** [misc/CMakeFiles/fsck-wrapper.dir/build.make:76:misc/fsck-wrapper] 错误 1 make[4]:*** [CMakeFiles/Makefile2:1786:misc/CMakeFiles/fsck-wrapper.dir/all] 错误 2 make[3]: *** [Makefile:163: 全部] 错误 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]错误2 make[1]: *** [CMakeFiles/Makefile2:1868: android/CMakeFiles/android-system_arm64-v8a.dir/all] 错误 2 make: *** [Makefile:163: all] 错误 2>

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

请您参考如下方法:

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

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