一、背景
windows下用WSL运行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位的程序
安装 qemu & binfmt
sudo apt update
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'
这一步实现了把程序的运行交由qemu-user-static来运行,从而实现运行32位
注意每次重启WSL都得重新开启,可将这步加到开机自动启动中
sudo service binfmt-support start<