如何搭建windows下的linux子系统并在64位机下兼容32位elf程序

如何搭建windows下的linux子系统

  1. Windows设置→更新和安全→开发者选项→开发人员模式

在这里插入图片描述

2.搜索→控制面板→卸载程序→程序和功能→启用或关闭Windows功能

在这里插入图片描述

在这里插入图片描述

勾选完该项后(如果关闭了windows更新,可能会报错0x80073701的错误,这时候打开更新并更新后解决,之后会提示是否重启计算机(建议重启,不然在安装linux时会报0x8007019e的错误)

3.Microsoft Store下载Linux(建议下载Ubuntu 18.04 LTS)
在这里插入图片描述
4.安装完成后运行linux,点击shift+鼠标右键会多一条在此处打开linux shell的选项。
sudo apt-get install build-essential module-assistant 使用超级用户权限安装c语言的开发包,包含了gcc make gdb和libc函数库 很多工具
sudo apt-get install gcc-multilib g+±multilib 使用超级用户权限安装GCC multilib,主要是用于支持交叉编译(cross compiling),即编译出来的程序是用来在其他处理器平台上运行的。例如可以在x86 64位处理器上编译出x86 32位程序,运行在32位处理器上,或者在x86平台上编译出可以在ARM处理器上运行的程序。
make -v查看版本
在这里插入图片描述

Win 64位Linux子系统运行32位elf程序

  1. 安装qemu并设置binfmt

  2. 更新软件源
    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’

  3. 启动服务
    注意! 每次重启WSL后,都需要重新执行!!
    sudo service binfmt-support start
    在这里插入图片描述

至此就已经可以使用了,直接执行32位elf文件即可正常运行。
暂停方法:停止服务即可:
sudo service binfmt-support stop

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值