win10 linux子系统 ls,win10上使用Linux子系统WSL时,如何解决-bash: ./xxxxxx: cannot execute binary file: Exec format ...

主要原因是不支持32位程序,可以用如下方法启用:WSL默认使用 64bit的程序,不支持32位的程序,但我们可以使用QEMU来虚拟化内核。

1. 查看Linux操作系统版本

## 方法1. uname查看系统信息,uname就是UNIXname的缩写

uname -s # -s或–sysname 显示linux内核名称

Linux

uname -r # -r或–release 显示linux操作系统内核版本号

4.4.0-18362-Microsoft

uname -v # -v 获取更详细的内核版本信息(译注:不是版本号,是指该内核建立的时间和CPU架构等)

#1-Microsoft Mon Mar 18 12:02:00 PST 2019

uname -n # -n或-nodename 显示主机在网络节点上的名称或主机名称

BF-2020060xxxxx

uname -m # -m或–machine 显示主机的硬件(CPU)架构

x86_64

uname -i # -i 显示硬件平台类型或unknown

x86_64

uname -p # -p 显示主机处理器类型或unknown

x86_64

uname -o # -o 显示操作系统名称

GNU/Linux

uname -a # -a或–all 显示系统详细信息:依次为内核名称,主机名,内核版本号,内核版本,硬件名,处理器类型,硬件平台类型,操作系统名称

Linux BF-2020060xxxxx 4.4.0-18362-Microsoft #1-Microsoft Mon Mar 18 12:02:00 PST 2019 x86_64 x86_64 x86_64 GNU/Linux

## 方法2. 查看方式

file /bin/ls

# 根据输出信息确认此Linux版本为64位

/bin/ls: ELF 64-bit LSB shared object, x86-64, version 1 (SYSV), dynamically linked, interpreter /lib64/ld-linux-x86-64.so.2, BuildID[sha1]=2f15ad836be3339dec0e2e6a3c637e08e48aacbd, for GNU/Linux 3.2.0, stripped

此linux版本为64位。(64-bit)

2. 按照常规方式:原生 Ubuntu 添加 32bit 运行环境

sudo dpkg --add-architecture i386

sudo apt-get update

sudo apt-get install libc6:i386

sudo apt-get install lib32ncurses5 lib32ncurses5-dev

sudo apt-get install lib32z1

注:并没有解决问题。报错同样是 Exec format error

3. 安装QEMU

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'

4. 启动服务:注意每次调试32位程序之前都要启用一次

sudo service binfmt-support start

5. 启动32位架构

sudo dpkg --add-architecture i386

sudo apt update

sudo apt-get install libc6:i386 libncurses5:i386 libstdc++6:i386

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值