AskOverflow.Dev

AskOverflow.Dev Logo AskOverflow.Dev Logo

AskOverflow.Dev Navigation

  • 主页
  • 系统&网络
  • Ubuntu
  • Unix
  • DBA
  • Computer
  • Coding
  • LangChain

Mobile menu

Close
  • 主页
  • 系统&网络
    • 最新
    • 热门
    • 标签
  • Ubuntu
    • 最新
    • 热门
    • 标签
  • Unix
    • 最新
    • 标签
  • DBA
    • 最新
    • 标签
  • Computer
    • 最新
    • 标签
  • Coding
    • 最新
    • 标签
主页 / ubuntu / 问题 / 1180313
Accepted
catalex
catalex
Asked: 2019-10-12 07:01:23 +0800 CST2019-10-12 07:01:23 +0800 CST 2019-10-12 07:01:23 +0800 CST

-bash: ./my_file: 无法执行二进制文件:执行格式错误,但我的架构和精灵匹配

  • 772

我正在尝试使用ubuntu64-16.04.3-minimal-odroid-c2-20171005操作系统在 Odroid-C2 上运行二进制文件。该文件有 777 权限,是为 ARM 编译的。

# ls -l my_file
-rwxrwxrwx 1 root root 136409 Sep 30 13:17 my_file

#pwd
/home

#file my_file
my_file: ELF 32-bit LSB executable, ARM, version 1, statically linked, not stripped

#uname -a
Linux odroid64 3.14.79-116 #1 SMP PREEMPT Tue Sep 26 01:19:06 BRT 2017 aarch64 aarch64 aarch64 GNU/Linux 

当我尝试运行它(./my_file)时,我收到一个错误: -bash: ./my_file: cannot execute binary file:Exec format error

我知道我的二进制文件是 32 位的,而我的 Ubuntu 是 64 位的,所以我按照本教程添加了新架构。这没有帮助,正在发生同样的错误。

我还搜索了另一种解决方案,但似乎出现此错误的唯一问题是架构不匹配。我很确定这不是我的问题——elf 是 ARM,Odroid 也是。我以前在这个 Odroid 上运行过类似的二进制文件,所以我现在真的很困惑。

你能帮我找出我的错误吗?

64-bit bash 32-bit arm binary
  • 1 1 个回答
  • 5345 Views

1 个回答

  • Voted
  1. Best Answer
    Thomas Ward
    2019-10-12T07:10:00+08:002019-10-12T07:10:00+08:00

    ELF 32-bit LSB executable, ARM

    这是一个 32 位 ARM 可执行文件,专为 32 位 ARM 基础架构环境(当您拥有 32 位 ARM 库时为 armhf、armel、arm64)而设计

    aarch64

    您的架构是 64 位 ARM。具体来说,aarch64芯片只支持ARMv8 A64指令集,不支持像这个二进制需要的A/T32运行时指令集1。

    aarch64所以系统的抱怨实际上是有效的 - 32 位 ARM 可执行文件对于无法执行 A/T32 指令集的 64 位环境具有无效的 ELF 标头。


    1 基于https://en.wikichip.org/wiki/arm/aarch64的假设,该假设指出:

    AArch64 执行状态是随 ARMv8 ISA 引入的,用于执行 A64 指令的机器。AArch64 中的机器只能执行 A64 指令,不能执行 A32 或 T32 指令。

    • 2

相关问题

  • 如何在 shell 脚本中创建选择菜单?

  • 从 bash 迁移到 zsh [关闭]

  • bashrc 还是 bash_profile?

  • 为什么 Ubuntu 下载推荐 32 位安装?[关闭]

  • 备份 bash 脚本未压缩其 tarball

Sidebar

Stats

  • 问题 205573
  • 回答 270741
  • 最佳答案 135370
  • 用户 68524
  • 热门
  • 回答
  • Marko Smith

    如何运行 .sh 脚本?

    • 16 个回答
  • Marko Smith

    如何安装 .tar.gz(或 .tar.bz2)文件?

    • 14 个回答
  • Marko Smith

    如何列出所有已安装的软件包

    • 24 个回答
  • Marko Smith

    无法锁定管理目录 (/var/lib/dpkg/) 是另一个进程在使用它吗?

    • 25 个回答
  • Martin Hope
    Flimm 如何在没有 sudo 的情况下使用 docker? 2014-06-07 00:17:43 +0800 CST
  • Martin Hope
    Ivan 如何列出所有已安装的软件包 2010-12-17 18:08:49 +0800 CST
  • Martin Hope
    La Ode Adam Saputra 无法锁定管理目录 (/var/lib/dpkg/) 是另一个进程在使用它吗? 2010-11-30 18:12:48 +0800 CST
  • Martin Hope
    David Barry 如何从命令行确定目录(文件夹)的总大小? 2010-08-06 10:20:23 +0800 CST
  • Martin Hope
    jfoucher “以下软件包已被保留:”为什么以及如何解决? 2010-08-01 13:59:22 +0800 CST
  • Martin Hope
    David Ashford 如何删除 PPA? 2010-07-30 01:09:42 +0800 CST

热门标签

10.10 10.04 gnome networking server command-line package-management software-recommendation sound xorg

Explore

  • 主页
  • 问题
    • 最新
    • 热门
  • 标签
  • 帮助

Footer

AskOverflow.Dev

关于我们

  • 关于我们
  • 联系我们

Legal Stuff

  • Privacy Policy

Language

  • Pt
  • Server
  • Unix

© 2023 AskOverflow.DEV All Rights Reserve