Win 64位Linux子系统运行32位elf程序(简洁明了/亲测可用)

Linux64位子系统运行32位elf

原文链接:https://github.com/Microsoft/WSL/issues/2468#issuecomment-374904520

原文是github的题主想运行32位gcc,所以原文会多一些针对方法。

下是总结的通用方法,亲测可用。

1. 安装qemu并设置binfmt

更新软件源

sudo apt update

安装qemu

sudo apt install qemu-user-static

设置binfmt,让系统能识别32位elf的文件头,并自动使用qemu运行之

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'

2. 启动服务

注意! 每次重启WSL后,都需要重新执行!!

sudo service binfmt-support start

至此就已经可以使用了,直接执行32位elf文件即可正常运行。

暂停方法:停止服务即可:

sudo service binfmt-support stop

以下为可选操作,支持更方便的操作。

3.【可选】使之更易于使用

一:可以将2中的命令加入到.bashrc.bash_profile脚本中以免除每次重启都要手动输入的烦恼

使用 vim 或其他文本编辑器添加在末尾即可

二:亦或者平时不希望它启动,只有需要时手动启动,可以如下设置命令别名,使用时输入32即可。
注意alias命令仅在当前终端生效,所以应将其加入.bashrc脚本。

alias 32='sudo service binfmt-support start'

3. 【可选】如何安装32位软件包

启用i386构架软件包

sudo dpkg --add-architecture i386

更新软件源

sudo apt update

以安装gcc为例:

sudo apt install gcc:i386
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值