二进制文件存在,但 shell 说没有这样的文件

wic*_*tas 6 bash binary cmake

  1. 我在 Android 上使用 UserLAnd 中的 Ubuntu。
  2. 我刚刚从 Android SDK Manager sdkmanager cmake 3.18.1安装。

cmake/3.18.1/bin现在,我可以从其目录中看到 cmake 可执行文件ls,但是当我运行时./cmake,bash 返回bash: ./cmake: No such file or directory。什么地方出了错?控制台的完整输出:

ubuntu@me:~/cmake/3.18.1/bin$ ls
ccmake  cmake  cpack  ctest  ninja

ubuntu@me:~/cmake/3.18.1/bin$ ./cmake
bash: ./cmake: No such file or directory

ubuntu@me:~/cmake/3.18.1/bin$ file ./cmake
./cmake: ELF 64-bit LSB executable, x86-64, version 1 (SYSV), dynamically linked, interpreter /lib64/ld-linux-x86-64.so.2, for GNU/Linux 2.6.24, stripped

ubuntu@me:~/cmake/3.18.1/bin$ ldd ./cmake
        not a dynamic executable

ubuntu@me:~/cmake/3.18.1/bin$ uname -m              
        aarch64
Run Code Online (Sandbox Code Playgroud)

谢谢!

ter*_*don 20

如果您尝试运行为不同体系结构编译的二进制文件,就会出现这个令人困惑的错误,即找不到文件。就您而言,您在 ARM 芯片上的AArch64系统上运行。但是,您的二进制文件是针对x86-64编译的,这是一种用于 Intel 和 AMD 芯片(也可能是其他芯片)的架构。

简而言之,您无法在您的系统上执行此二进制文件。相反,您需要下载为 AArch64 编译的版本或从源代码自行编译。

  • 这肯定是一个误导性的错误消息。 (5认同)