首页 > 其他 > 详细

在WSL中运行32位程序

时间:2021-01-22 19:28:17      阅读:137      评论:0      收藏:0      [点我收藏+]

今天发现在WSL中运行32位程序hmetis会报错:

-bash: ./hmetis: cannot execute binary file: Exec format error

用file hmetis命令查看文件信息:

hmetis: ELF 32-bit LSB executable, Intel 80386, version 1 (SYSV), dynamically linked, interpreter /lib/ld-linux.so.2, for GNU/Linux 2.0.0, stripped

 

经过查找,发现github上@Froosh给出了他的解决方案,通过安装qemu来运行32位的程序:https://github.com/Microsoft/WSL/issues/2468

1. 首先安装qemu and 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

每次重新启动WSL并希望i386支持时,您都需要重新激活此功能:

sudo service binfmt-support start

2. 接下来启用i386体系结构和package

sudo dpkg --add-architecture i386
sudo apt update
sudo apt install cpp-9:i386
sudo apt install gcc:i386

至此,就可以运行之前的32位binary了。

3. 设置开机启动

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

 

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

在WSL中运行32位程序

原文:https://www.cnblogs.com/lbz007oi/p/14314063.html

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!