我司RK3568對(duì)外提供源代碼是以sdk的形式提供,包括但不僅限于uboot、kernel、buildroot、debian源碼。在編譯sdk的過程中往往需要安裝大量的第三方安裝包,同時(shí)也要保證宿主機(jī)ubuntu的gcc版本符合當(dāng)前ubuntu版本的需求,否則可能會(huì)因?yàn)間cc版本的不一致導(dǎo)致編譯失敗。
IAC-RK3568-KIT
有些客戶需要多個(gè)版本的gcc,如果貿(mào)然通過apt-get命令安裝多個(gè)版本gcc,會(huì)引起gcc版本沖突,造成環(huán)境無法控制,引發(fā)比較嚴(yán)重的后果。為了更好的管理gcc的版本,這里就分享一個(gè)小技巧,用一些管理工具去控制gcc版本,讓多版本gcc切換自如,避免多gcc版本同時(shí)存在造成的不可預(yù)估的錯(cuò)誤。
這里我們以u(píng)buntu20.04為例為大家演示。首先我們通過gcc -v命令查看當(dāng)前gcc版本(ubuntu16.04以后安裝ubuntu會(huì)自帶相對(duì)應(yīng)版本gcc編譯器,無需手動(dòng)安裝)
如圖所示
可以看到ubuntu20.04對(duì)應(yīng)的gcc版本為9.4,那么說明當(dāng)前環(huán)境下是gcc 9.4的環(huán)境,用gcc命令去編譯程序,調(diào)用的就是9.4版本的gcc。高版本gcc支持更高級(jí)的語法,對(duì)于一些老舊的程序而言可能存在問題,所以我們安裝另外一個(gè)低版本gcc,gcc5.4。
輸入命令apt-cache policy gcc-5查看gcc可用版本,這里選擇5.4.0,然后用sudo apt-get install gcc-5=5.4.0-6ubuntu1~16.04.12,安裝完畢后使用ls /usr/bin/gcc*命令可以查看到當(dāng)前ubuntu內(nèi)有兩個(gè)gcc,分別是gcc-9和gcc-5,說明我們安裝gcc5成功,然后就是通過update-alternativers命令去管理這兩個(gè)gcc。
輸入命令:
sudo update-alternatives --install /usr/bin/gcc gcc /usr/bin/gcc-5 40
sudo update-alternatives --install /usr/bin/gcc gcc /usr/bin/gcc-9 50
這樣就建立了兩個(gè)gcc的鏈接,后面的數(shù)字是優(yōu)先級(jí),數(shù)字越大,優(yōu)先級(jí)越高,再鍵入下面的命令用于選擇gcc版本sudo update-alternatives --config gcc
如圖所示
這里我們選擇gcc-5對(duì)應(yīng)的編號(hào)1,然后回車即可。最后用gcc -v命令查看一下當(dāng)前ubuntu gcc版本,發(fā)現(xiàn)是gcc5,說明配置成功。
對(duì)于多版本gcc的管理,這樣的方法能夠很好的避免版本沖突造成的問題,同時(shí)這里分享的是gcc的版本管理,相同的g++也可這樣做。
-
編譯
+關(guān)注
關(guān)注
0文章
657瀏覽量
32870 -
SDK
+關(guān)注
關(guān)注
3文章
1036瀏覽量
45935 -
RK3568
+關(guān)注
關(guān)注
4文章
514瀏覽量
5048
發(fā)布評(píng)論請(qǐng)先 登錄
相關(guān)推薦
鴻蒙OpenHarmony【標(biāo)準(zhǔn)系統(tǒng)編譯】 (基于RK3568開發(fā)板)
![鴻蒙OpenHarmony【標(biāo)準(zhǔn)系統(tǒng)<b class='flag-5'>編譯</b>】 (基于<b class='flag-5'>RK3568</b>開發(fā)板)](https://file1.elecfans.com/web2/M00/C5/D1/wKgZomYChGOAUaiiAADe1d8SeRY102.jpg)
rk3568處理器屬于什么檔次 rk3568性能怎么樣
![<b class='flag-5'>rk3568</b>處理器屬于什么檔次 <b class='flag-5'>rk3568</b>性能怎么樣](https://file.elecfans.com/web2/M00/65/65/pYYBAGMIjQSACWC_AACkJQ2IORE151.png)
ROC RK3568 PC源代碼Android11.0 SDK
![ROC <b class='flag-5'>RK3568</b> PC源代碼Android11.0 <b class='flag-5'>SDK</b>](https://file.elecfans.com/web1/M00/D9/4E/pIYBAF_1ac2Ac0EEAABDkS1IP1s689.png)
ROC RK3568 PC源代碼Linux SDK源碼包
![ROC <b class='flag-5'>RK3568</b> PC源代碼Linux <b class='flag-5'>SDK</b>源碼包](https://file.elecfans.com/web1/M00/D9/4E/pIYBAF_1ac2Ac0EEAABDkS1IP1s689.png)
ROC RK3568 PC源代碼RK3568/RK3588 RKNN SDK
![ROC <b class='flag-5'>RK3568</b> PC源代碼<b class='flag-5'>RK3568</b>/<b class='flag-5'>RK</b>3588 RKNN <b class='flag-5'>SDK</b>](https://file.elecfans.com/web1/M00/D9/4E/pIYBAF_1ac2Ac0EEAABDkS1IP1s689.png)
技術(shù)分享 | RK3568開發(fā)板 buildroot編譯配置
![技術(shù)分享 | <b class='flag-5'>RK3568</b>開發(fā)板 buildroot<b class='flag-5'>編譯</b>配置](https://file.elecfans.com/web2/M00/43/4A/poYBAGJ9sjaAPEhHAAAvI_7i-HA907.jpg)
評(píng)論