如何搭建windows下的linux子系统
- 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程序
-
安装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’ -
启动服务
注意! 每次重启WSL后,都需要重新执行!!
sudo service binfmt-support start
至此就已经可以使用了,直接执行32位elf文件即可正常运行。
暂停方法:停止服务即可:
sudo service binfmt-support stop