Win10 Ubuntu子系統運行32bit Linux原生程序


 

本文主要描述的是:解決  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 的教程即可。  一直在找問題 安裝了不少東西,其中有沒有用未知。

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM