win10/Linux子系统WSL时,解决sh: 1: ./xxx/xxx: Exec format error
问题背景:win10/Linux子系统WSL下运行文本切分对齐工具./mwerSegmenter程序时 出现Exec format error错误,可通过以下步骤解决:
问题原因:主要原因是不支持32位程序,可以用如下方法启用:WSL默认使用 64bit的程序,不支持32位的程序,可以使用QEMU来虚拟化内核来解决这个问题。
解决问题步骤:
-
查看Linux操作系统版本
uname -m # -m或–machine 显示主机的硬件(CPU)架构
x86_64
uname -i # -i 显示硬件平台类型或unknown
x86_64
uname -p # -p 显示主机处理器类型或unknown
x86_64 -
安装QEMU
sudo apt-get update
sudo apt-get 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'
3.启动服务
sudo service binfmt-support start
参考:https://blog.csdn.net/ZRL4836/article/details/122577902
https://www.cnblogs.com/zhang-liubai/p/14599415.html