一、背景
在WSL下,使用gcc -m32编译出的32位程序无法运行,提示:

demo: cannot execute binary file: Exec format errorfile demo#查看文件信息
demo: 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

三、WSL开机启动设置
1.WSL中添加文件

vim /etc/myinit.sh
sudo service binfmt-support start

2.在Windows下添加启动文件
(1).Ctrl+R打开"运行",输入"shell:startup",会弹出StartUp目录
(2).创建wsl-binfmt-support.vbs文件

Set ws = WScript.CreateObject("WScript.Shell")
cmd = "C:\Windows\System32\bash.exe -c ""bash /etc/myinit.sh"""
' 运行命令不显示cmd窗口
ws.Run cmd, 0, false
Set ws = Nothing
WScript.quit

搞定。

参考:
https://github.com/Microsoft/WSL/issues/2468
https://blog.csdn.net/fcymk2/article/details/79711566

参考网址:https://www.cnblogs.com/TatuCz/p/10330820.html

【工程项目经验】Bash On Windows(WSL)无法运行32Bit程序相关推荐

  1. android多屏应用程序,微软也尝试“多屏协同” Windows系统可以运行安卓程序

    原标题:微软也尝试"多屏协同" Windows系统可以运行安卓程序 [环球网科技综合报道]一直以来人们希望手机和电脑能更好的协作,来帮助提高生产力,但是因为电脑的系统和手机操作系统 ...

  2. linux32位运行64位程序,32位windows下可以运行的程序在64位linux下报错

    已结贴√ 问题点数:20 回复次数:3 32位windows下可以运行的程序在64位linux下报错 filt.c在32位windows code:blocks 10.05下运行无任何异样. 传到64 ...

  3. Windows命令行运行Java程序

    如何在Windows命令行运行Java程序 准备工作 1.安装JDK 安装JDK(Java Development Kit Java开发工具包 又称SDK)Oracle公司JDK下载地址,直接下载,然 ...

  4. 在Windows上双击运行Python程序不会自动退出的方法

    文章目录 在Windows上双击运行Python程序不会自动退出的方法 前言 将python.exe添加到环境变量中 一个Python程序例子 双击运行Python程序报错 双击运行Windows C ...

  5. Windows下后台运行Python程序,并终止特定程序

    Windows以后台方式运行Python程序 Set ws = CreateObject("Wscript.Shell") ws.run "cmd /c start.ba ...

  6. php案例:用Windows命令来运行php程序

    作者:陈业贵 华为云享专家 51cto(专家博主 明日之星 TOP红人) 阿里云专家博主 文章目录 cyg.php 命令: cyg.php <?phpecho 100+200;echo &quo ...

  7. 使用Windows任务计划自动运行Python程序

    目录 1.编写Python程序 2.编写Windows批处理命令 3.创建Windows任务计划 3.1 在程序栏搜索:任务计划程序 3.2 点开后如下图,右键新建一个文件夹: 3.3 创建一个叫Py ...

  8. linux执行命令段错误,Linux运行fortran程序 出现段错误(segmentation fault)

    在Windows下编译运行fortran程序时,没有问题 ,运行时出现堆栈错误,只要在CVF里修改一下扩大内存设置: MAIN MENU: Project ===> Setting ===> ...

  9. 在JScript中运行应用程序

    与像C++.C#.Java等编程语言相比,脚本语言更适合于创建短小的应用程序以便快速解决小问题. 在很多情况下,脚本很适合于实现手动任务的自动化,例如:操纵windows环境,运行其他程序,使登录过程 ...

最新文章

  1. mongodb基础应用
  2. c# 分类 机器学习_听说你要用C#做机器学习
  3. Vsftp与PAM虚拟用户
  4. 阿云搭建php博客,阿云的应聘故事
  5. c理c利用计算机怎么弹,通过汇编一个简单的C程序,分析汇编代码理解计算机是如何工作的...
  6. SpringCloud 从菜鸟到大牛之六 消息和异步 MQ
  7. 如何用python控制电脑的应用程序打不开_如果电脑中的一个应用程序打不开,点击图标没反应,能否将其强制打开...
  8. Android学习笔记---文件的操作模式,各种模式之间的关系,以及沿用linux系统的安全性
  9. supermap许可 (*.lic9d)
  10. ulipad怎么运行python
  11. Keras源码下载记录
  12. java开源知识库项目_18个java cms开源项目
  13. 每个 gopher 都需要了解的 Go AST
  14. excel 模糊查询
  15. 知识图谱学习笔记(三)——知识表示方法
  16. 朱一龙左娜扎右热巴,王栎鑫:我想活成你的样子
  17. Soul瞬间发布长视频教程
  18. 关于弱电间和机房的综合布线
  19. 攻击者如何破坏无人机?
  20. 网络存储技术Windows server 2012 (项目五 存储服务器的数据快照计划与故障还原)

热门文章

  1. mysql java事物回滚吗_为什么 MySQL 回滚事务也会导致 ibd 文件增大?
  2. 蓝桥杯比赛的RTC时钟配置
  3. java float_关于java中float型的问题
  4. mysql中sysdate(),curdate(),curtime(),now()
  5. Tomcat8.5.40启动后一直卡在日志At least one JAR was scanned for TLDs yet contained no TLDs
  6. servlet ---- 请求对象
  7. java 网络实验_java网络聊天室实验
  8. 怎么计算z=x+y的概率密度_上大《Scripta Mater》基于第一性原理计算,研究镁合金强化相!...
  9. python中if语句求最大值_Python中用max()方法求最大值的介绍
  10. VUE项目启动:You may use special comments to disable some warnings