当前位置: 移动技术网 > 科技>操作系统>windows > Win10 Ubuntu子系统运行32bit Linux原生程序

Win10 Ubuntu子系统运行32bit Linux原生程序

2018年12月06日  | 移动技术网科技  | 我要评论

纪海鹏,小城天长论坛,兴安证券大智慧

 

本文主要描述的是:解决  win10 ubuntu子系统中运行  32bit linux原生程序 报错  exec format error

 

问题来源于  在 win10 ubuntu子系统中运行  linux原生交叉编译器  32bit  gcc  。

解压gcc 后直接运行

./arm-linux-gcc -v     报错 :  exec format error

按照常规方式   :  原生 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

 

通过  readelf  -a  arm-linux-gcc  检查程序导出表发现问题

readelf  命令报错:not an elf file - it has the wrong magic bytes at the start 

初步确定问题来源,子系统不支持原生linux文件头。

 

而后通过搜索此错误找到相关english网页。 此问题。

解决方式如下:

添加xxx形式文件头支持

1 sudo apt update
2 sudo apt install qemu-user-static
3 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'

 

 

可能还有其他依赖需要安装,按照原生linux 的教程即可。  一直在找问题 安装了不少东西,其中有没有用未知。

 

如对本文有疑问,请在下面进行留言讨论,广大热心网友会与你互动!! 点击进行留言回复

相关文章:

验证码:
移动技术网