Ubuntu 18.04 LTS 64 位运行 32 位执行文件时出现问题(已遵循之前的指南)

Ubuntu 18.04 LTS 64 位运行 32 位执行文件时出现问题(已遵循之前的指南)

问题:我现在该怎么做才能让这个 32 位文件在我的 64 位 ubuntu 安装上运行?

主要错误:可执行文件格式错误。二进制文件不可执行。

我正在尝试运行 10 多年前编译的文件。该文件的配置如下:

ELF 32-bit LSB executable, 
Intel 80386, version 1 (SYSV), 
statically linked, 
for GNU/Linux 2.2.5, stripped

我的 Ubuntu 子系统配置是:

x86_64 x86_64 x86_64 GNU/Linux
Distributor ID: Ubuntu
Description:    Ubuntu 18.04.1 LTS
Release:        18.04
Codename:       bionic

因此,我一直遵循本指南使 32 位文件在我的 64 位 ubuntu 安装上运行: 如何在 64 位 Ubuntu 中运行 32 位应用程序?

本质上,我已执行以下步骤:

sudo dpkg --add-architecture i386
sudo apt-get update
sudo apt-get install libc6:i386 libncurses5:i386 libstdc++6:i386
sudo apt-get install multiarch-support

之后,我运行以下命令来运行该文件:

sudo ./executeFile inputFile

这对我来说不起作用,因为我仍然收到Exec format error. Binary file not executable.错误。

我遵循了 AskUbuntu 上的其他各种指南并安装了各种软件包。与我遵循的上述指南类似的另一个示例是运行 32 位可执行文件,使用以下命令:

sudo apt-get install --reinstall libc6-i386
sudo apt-get install libgl1-mesa-glx:i386 lsb-core

答案1

这个答案帮助我解决了我的问题:https://stackoverflow.com/questions/36665669/trying-and-failing-to-run-hello-world-32-bit-c-program-on-64-bit-ubuntu-on-w/36896713#36896713

要点是使用这些命令:

sudo apt install qemu-user-static
sudo update-binfmts --install i386 /usr/bin/qemu-i386-static --magic '\x7fELF\x01\x01\x01\x03\x00\x00\x00\x00\x00\x00\x00\x00\x03\x00\x03\x00\x01\x00\x00\x00' --mask '\xff\xff\xff\xff\xff\xff\xff\xfc\xff\xff\xff\xff\xff\xff\xff\xff\xf8\xff\xff\xff\xff\xff\xff\xff'

sudo service binfmt-support start

sudo dpkg --add-architecture i386
sudo apt update
sudo apt install g++:i386

相关内容