最近做比賽挽铁,需要用到linux環(huán)境下的Arm芯片的交叉編譯環(huán)境,原則上配置其他編譯器相同操作。本著愛(ài)倒騰不嫌麻煩的熱情。嘗試實(shí)現(xiàn)win10+VSCode的編譯環(huán)境搭建蹲坷,(中間碰到問(wèn)題想讓淘寶專門(mén)裝系統(tǒng)的解決,差點(diǎn)坑我70塊)廢話不多少趾浅,直接講講踩過(guò)的坑闰挡。
我的系統(tǒng)版本是win10-1909家庭中文版,安裝ubuntu 18.04LTS析校,具體安裝可見(jiàn)子系統(tǒng)安裝教程构罗,在這里不建議大家倒騰圖形界面什么的,可能會(huì)導(dǎo)致一些奇奇怪怪的錯(cuò)誤智玻。
首先打開(kāi)源配置文件:
sudo vim /etc/apt/sources.list
如果不會(huì)vim可以自己查找一下命令遂唧。建議從官網(wǎng)更換和自己ubuntu匹配的源,這里潑出清華源地址吊奢,注意一定要版本匹配盖彭。
然后就是更新源:
sudo apt update
sudo apt upgrade
在此之后就不建議大家進(jìn)行upgrade了,可能會(huì)造成一些版本不兼容問(wèn)題页滚。
接下來(lái)就是安裝必要的基礎(chǔ)編譯軟件咯(可以根據(jù)自己的需求安裝部分):
sudo apt-get install git build-essential python diffstat texinfo gawk chrpath dos2unix wget unzip socat doxygen libc6:i386 libncurses5:i386 libstdc++6:i386 libz1:i386
注意召边,最后幾個(gè)是32位編譯器所需環(huán)境,在WSL2中是默認(rèn)沒(méi)有的裹驰,如果你的電腦報(bào)相關(guān)錯(cuò)誤比如找不到包隧熙,請(qǐng)創(chuàng)建i386架構(gòu)再嘗試安裝:
sudo dpkg --add-architecture i386
sudo apt-get update
有的時(shí)候安裝i386依賴庫(kù)時(shí)會(huì)出現(xiàn)一些奇奇怪怪的錯(cuò)誤,可以用如下命令解決(親測(cè)幻林,巨坑)贞盯,如果沒(méi)出現(xiàn)問(wèn)題請(qǐng)直接跳過(guò):
cd /var/lib/dpkg
sudo mv info info.bak
sudo mkdir info
sudo apt-get upgrade
最后結(jié)果:
此時(shí)子系統(tǒng)應(yīng)當(dāng)已經(jīng)有c++和python的運(yùn)行環(huán)境音念,測(cè)試一下gcc或者g++應(yīng)當(dāng)顯示如下:
g++ -v
恭喜,如果你只是做linux環(huán)境下的c++或c編譯躏敢,已經(jīng)可以使用了闷愤。我建議在win10下安裝VScode進(jìn)行調(diào)試和編譯。vscode可以自動(dòng)識(shí)別電腦子系統(tǒng)配置編譯環(huán)境父丰。大家可以在網(wǎng)上搜搜相關(guān)教程肝谭。
需要交叉編譯環(huán)境的,請(qǐng)準(zhǔn)備好自己的SDK包例如***.bin文件蛾扇,windows進(jìn)入bin文件根目錄攘烛,在地址欄輸入bash就可在此打開(kāi)子系統(tǒng)(win10子系統(tǒng)可以直接訪問(wèn)windows磁盤(pán)比虛擬機(jī)不知道方便多少!):
我安裝了arm的編譯鏈镀首,命令如下:
./ti-processor-sdk-linux-rt-am57xx-evm-05.03.00.07-Linux-x86-Install.bin
按照教程下一步坟漱,注意SDK支持的ubuntu版本!更哄,直到:
不能修改安裝路徑芋齿!會(huì)導(dǎo)致找不到文件的錯(cuò)誤!之前我為了節(jié)省C盤(pán)空間安裝到了mnt/d盤(pán)下面成翩,無(wú)法使用觅捆,請(qǐng)大家一定注意。
安裝完成后需要配置環(huán)境麻敌,使用vim打開(kāi)環(huán)境配置文件:
sudo vim ~/.bashrc
在最下面加入交叉編譯鏈地址:
export PATH=$PATH:/home/ray/ti-processor-sdk-linux-rt-am57xx-evm-05.03.00.07/linux-devkit/sysroots/x86_64-arago-linux/usr/bin
找不到地址請(qǐng)?jiān)趙in10下顯示隱藏文件栅炒,找到:
C:\Users\用戶名\AppData\Local\Packages\CanonicalGroupLimited.UbuntuonWindows_79rhkp1fndgsc\LocalState\rootfs
最后重新載入:
source ~/.bashrc
最后輸入自己的交叉編譯命令測(cè)試是否安裝成功,我的是:
arm-linux-gnueabihf-g++ -v
至此安裝成功术羔,在vscode開(kāi)發(fā)時(shí)只需注意一下把編譯器改成自己需要的即可赢赊。
其他一些小細(xì)節(jié):
1.子系統(tǒng)現(xiàn)在貌似只能在C盤(pán),似乎有大神可以實(shí)現(xiàn)裝在其他盤(pán)但看起來(lái)挺麻煩的级历。因此安裝前確認(rèn)一下自己C盤(pán)空間是否足夠释移,大概需要ubuntu系統(tǒng)4G加交叉編譯環(huán)境13G。
2.子系統(tǒng)似乎暫時(shí)無(wú)法調(diào)用攝像頭寥殖!但微軟已經(jīng)在為下一個(gè)版本適配USB攝像頭準(zhǔn)備了玩讳。
3.子系統(tǒng)可以連接串口,因此調(diào)試硬件會(huì)變得非常簡(jiǎn)單扛禽,例如win10設(shè)備管理器里的COM3對(duì)應(yīng)ttyS3锋边。
4.gedit等圖形顯示工具都無(wú)法運(yùn)作,子系統(tǒng)目前只支持命令行輸入编曼,代碼及開(kāi)發(fā)建議vscode連接子系統(tǒng)完成,誰(shuí)用誰(shuí)知道剩辟,真滴好用掐场。
大概想到的就是這些了往扔,希望可以幫助到愛(ài)倒騰的小朋友,如果有疑問(wèn)歡迎留言熊户!