【工程项目经验】Bash On Windows(WSL)无法运行32Bit程序
一、背景
在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程序相关推荐
- android多屏应用程序,微软也尝试“多屏协同” Windows系统可以运行安卓程序
原标题:微软也尝试"多屏协同" Windows系统可以运行安卓程序 [环球网科技综合报道]一直以来人们希望手机和电脑能更好的协作,来帮助提高生产力,但是因为电脑的系统和手机操作系统 ...
- linux32位运行64位程序,32位windows下可以运行的程序在64位linux下报错
已结贴√ 问题点数:20 回复次数:3 32位windows下可以运行的程序在64位linux下报错 filt.c在32位windows code:blocks 10.05下运行无任何异样. 传到64 ...
- Windows命令行运行Java程序
如何在Windows命令行运行Java程序 准备工作 1.安装JDK 安装JDK(Java Development Kit Java开发工具包 又称SDK)Oracle公司JDK下载地址,直接下载,然 ...
- 在Windows上双击运行Python程序不会自动退出的方法
文章目录 在Windows上双击运行Python程序不会自动退出的方法 前言 将python.exe添加到环境变量中 一个Python程序例子 双击运行Python程序报错 双击运行Windows C ...
- Windows下后台运行Python程序,并终止特定程序
Windows以后台方式运行Python程序 Set ws = CreateObject("Wscript.Shell") ws.run "cmd /c start.ba ...
- php案例:用Windows命令来运行php程序
作者:陈业贵 华为云享专家 51cto(专家博主 明日之星 TOP红人) 阿里云专家博主 文章目录 cyg.php 命令: cyg.php <?phpecho 100+200;echo &quo ...
- 使用Windows任务计划自动运行Python程序
目录 1.编写Python程序 2.编写Windows批处理命令 3.创建Windows任务计划 3.1 在程序栏搜索:任务计划程序 3.2 点开后如下图,右键新建一个文件夹: 3.3 创建一个叫Py ...
- linux执行命令段错误,Linux运行fortran程序 出现段错误(segmentation fault)
在Windows下编译运行fortran程序时,没有问题 ,运行时出现堆栈错误,只要在CVF里修改一下扩大内存设置: MAIN MENU: Project ===> Setting ===> ...
- 在JScript中运行应用程序
与像C++.C#.Java等编程语言相比,脚本语言更适合于创建短小的应用程序以便快速解决小问题. 在很多情况下,脚本很适合于实现手动任务的自动化,例如:操纵windows环境,运行其他程序,使登录过程 ...
最新文章
- mongodb基础应用
- c# 分类 机器学习_听说你要用C#做机器学习
- Vsftp与PAM虚拟用户
- 阿云搭建php博客,阿云的应聘故事
- c理c利用计算机怎么弹,通过汇编一个简单的C程序,分析汇编代码理解计算机是如何工作的...
- SpringCloud 从菜鸟到大牛之六 消息和异步 MQ
- 如何用python控制电脑的应用程序打不开_如果电脑中的一个应用程序打不开,点击图标没反应,能否将其强制打开...
- Android学习笔记---文件的操作模式,各种模式之间的关系,以及沿用linux系统的安全性
- supermap许可 (*.lic9d)
- ulipad怎么运行python
- Keras源码下载记录
- java开源知识库项目_18个java cms开源项目
- 每个 gopher 都需要了解的 Go AST
- excel 模糊查询
- 知识图谱学习笔记(三)——知识表示方法
- 朱一龙左娜扎右热巴,王栎鑫:我想活成你的样子
- Soul瞬间发布长视频教程
- 关于弱电间和机房的综合布线
- 攻击者如何破坏无人机?
- 网络存储技术Windows server 2012 (项目五 存储服务器的数据快照计划与故障还原)
热门文章
- mysql java事物回滚吗_为什么 MySQL 回滚事务也会导致 ibd 文件增大?
- 蓝桥杯比赛的RTC时钟配置
- java float_关于java中float型的问题
- mysql中sysdate(),curdate(),curtime(),now()
- Tomcat8.5.40启动后一直卡在日志At least one JAR was scanned for TLDs yet contained no TLDs
- servlet ---- 请求对象
- java 网络实验_java网络聊天室实验
- 怎么计算z=x+y的概率密度_上大《Scripta Mater》基于第一性原理计算,研究镁合金强化相!...
- python中if语句求最大值_Python中用max()方法求最大值的介绍
- VUE项目启动:You may use special comments to disable some warnings