@TOC
說明
現在win10系統(tǒng)內嵌了一個linux子系統(tǒng),就想試試是否可以配置成自己平常用的開發(fā)環(huán)境突勇,之前也試過涮因,但失敗了废睦,這一次配置成功了,便記錄一下配置過程养泡。
使用的系統(tǒng)是ubuntu18.04LTS嗜湃,要配置的編譯器是arm-linux-gcc奈应。
啟用WSL
關于如何啟用win10自帶的子系統(tǒng)就不多說了,這個問一下度娘很容易就能知道购披,只要在“啟用或關閉windows功能”中選中wsl杖挣,重啟電腦后便可支持子系統(tǒng)。
啟用之后我們可以在windows商店中選擇自己喜歡的linux系統(tǒng)刚陡,我平時用的是ubuntu惩妇,所以選擇了ubuntu18.04LTS,下載安裝后筐乳,在win10左下角的搜索框輸入ubuntu就會出現選項歌殃,確定后便可以進入ubutu系統(tǒng)了。
配置過程
我的目的是配置自己的工作環(huán)境蝙云,所以程序代碼都是平時用的氓皱,這個就不分享了,大家可以自己找或者寫個helloc world測試用勃刨。我只要能夠成功編譯自己的代碼就算成功了波材。
進入系統(tǒng)后,先編譯一下代碼身隐,看看缺少哪些支持廷区。首先自然是make命令,這個好解決抡医,直接
sudo apt install make
另外我還需要dos2unix躲因,同樣的方法也能解決。
最重要的就是編譯器了忌傻,其實編譯器的配置說起來是很簡單的大脉,無非就是把編譯器拷貝過來,然后配置一下PATH路徑水孩,但對于我這種沒那么熟練的菜鳥來說還是費了很多功夫的镰矿。
交叉編譯器
我之前的編譯器是arm-linux-gcc4.8.4,是新唐NUC9700芯片配的編譯環(huán)境俘种,但是我電腦上沒有秤标,所以在網上找這個版本找了好久都沒找到,后來才找到新唐的資源宙刘,直接運行安裝腳本然后等待安裝完成就可以了苍姜。
以上這些雖然很費時間,但其實都還好解決悬包,最蛋疼的是配置后之后還是不能用衙猪,編譯的時候會報錯:arm-linux-gcc: Syntax error: "(" unexpected。之前配置的時候就是卡在這里,一直沒能解決垫释,所以棄用了丝格,這次依然遇到了這個問題。抱著試一試的態(tài)度又開始了網上查找解決方案的漫漫長路棵譬。
此處略去諸多心酸歷程显蝌。
最后的解決辦法:原因是wsl是64位系統(tǒng),而編譯器是32位的订咸,這種情況下需要安裝32位的運行庫曼尊。
其實之前就意識到這個問題了,但根據網上所有的解決辦法算谈,安裝了好多庫涩禀,始終沒有解決,沒想到這次竟然解決了然眼,方法是博文艾船。
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'
啟用和禁用的命令是:
sudo service binfmt-support start
sudo service binfmt-support stop
操作之后可以驗證一下,arm-linux-gcc -v查看一下版本高每,如果可以說明正常了屿岂。
結語
期間其實還有很多問題,比如安裝sqlite3之后提示找不到庫鲸匿,是因為還要安裝sqlite3-dev爷怀,等等,但其實這些安裝軟件的還好带欢,網上有很多解決辦法可以查到运授,關鍵的就是32位和64位這個問題,折騰了好久乔煞。
聲明:如果讓我再配一遍說不定還是要折騰很久吁朦,因為我不確定我這出的這幾個點是否就是這樣解決的,因為中間還安裝過許多其他亂七八糟的東西渡贾,說不定是某一個生效了呢逗宜,所以以上僅供參考,無法解決您的問題也希望輕噴空骚。