Bash On Windows(WSL)无法运行32Bit程序,报错cannot execute binary file: Exec format error解决办法

Posted tatucz

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Bash On Windows(WSL)无法运行32Bit程序,报错cannot execute binary file: Exec format error解决办法相关的知识,希望对你有一定的参考价值。

一、背景

windows下用linux工具,但32位的却无法运行报错

aapt: cannot execute binary file: Exec format error
file aapt
aapt: ELF 32-bit LSB executable, Intel 80386, version 1 (GNU/Linux), statically linked, for GNU/Linux 2.6.24

二、解决办法

github上@Froosh给出了他的解决方案,通过安装qemu来运行32位的程序
具体步骤:
Install qemu and binfmt

sudo apt update
sudo apt install qemu-user-static
sudo update-binfmts --install i386 /usr/bin/qemu-i386-static --magic ‘x7fELFx01x01x01x03x00x00x00x00x00x00x00x00x03x00x03x00x01x00x00x00‘ --mask ‘xffxffxffxffxffxffxffxfcxffxffxffxffxffxffxffxffxf8xffxffxffxffxffxffxff‘

这一步实现了把程序的运行交由qemu-user-static来运行,从而实现运行32位

注意每次重启WSL都得重新开启,可将这步加到开机自动启动中

sudo service binfmt-support start

参考:
https://github.com/Microsoft/WSL/issues/2468




以上是关于Bash On Windows(WSL)无法运行32Bit程序,报错cannot execute binary file: Exec format error解决办法的主要内容,如果未能解决你的问题,请参考以下文章

Bash On Ubuntu On Windows折腾记

通过 xshell 连接 ubuntu on windows(WSL)

如何从 WSL (Ubuntu) Bash 运行 Windows 可执行文件

从 WSL 运行某些东西的 Windows bash 脚本

如何在运行WSL时在Windows中设置VS代码调试?

无法从 WSL bash 中的批处理文件运行 Homebrew 应用程序(找不到命令)