工作當中會用當Ubuntu系統,但是主要的工作又是在Windows平臺, 這樣就需要用到虛擬機,而因爲公司裝了加密軟件,系統本來就比較卡頓,再開虛擬機就巨卡無比了。
於是就開始嘗試使用Windows10的linux子系統, 然後就操作了一番,發現運行我們的交叉編譯工具鏈時會出現,“Exec format error” , 一開始以爲是 32位和64位的區別,然後就安裝了32位兼容的各種包, 結果仍然不行。
最後沒辦法了,就只有不停的在網上搜索,看看有沒有哪位大神解決過這樣的問題,不愧是萬能的網絡,還真被我找到了,這裏就把它記錄下來,說不定哪天會再次用到呢!
問題的原因是:Windows10的linux 子系統不支持原生linux程序的文件頭
解決方法: 添加xxx形式文件頭支持
使用如下命令(三條命令):
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’
經測試,確實能解決我遇到的問題。