电子说
我司RK3568对外提供源代码是以sdk的形式提供,包括但不仅限于uboot、kernel、buildroot、debian源码。在编译sdk的过程中往往需要安装大量的第三方安装包,同时也要保证宿主机ubuntu的gcc版本符合当前ubuntu版本的需求,否则可能会因为gcc版本的不一致导致编译失败。
IAC-RK3568-KIT
有些客户需要多个版本的gcc,如果贸然通过apt-get命令安装多个版本gcc,会引起gcc版本冲突,造成环境无法控制,引发比较严重的后果。为了更好的管理gcc的版本,这里就分享一个小技巧,用一些管理工具去控制gcc版本,让多版本gcc切换自如,避免多gcc版本同时存在造成的不可预估的错误。
这里我们以ubuntu20.04为例为大家演示。首先我们通过gcc -v命令查看当前gcc版本(ubuntu16.04以后安装ubuntu会自带相对应版本gcc编译器,无需手动安装)
如图所示
可以看到ubuntu20.04对应的gcc版本为9.4,那么说明当前环境下是gcc 9.4的环境,用gcc命令去编译程序,调用的就是9.4版本的gcc。高版本gcc支持更高级的语法,对于一些老旧的程序而言可能存在问题,所以我们安装另外一个低版本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*命令可以查看到当前ubuntu内有两个gcc,分别是gcc-9和gcc-5,说明我们安装gcc5成功,然后就是通过update-alternativers命令去管理这两个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
这样就建立了两个gcc的链接,后面的数字是优先级,数字越大,优先级越高,再键入下面的命令用于选择gcc版本sudo update-alternatives --config gcc
如图所示
这里我们选择gcc-5对应的编号1,然后回车即可。最后用gcc -v命令查看一下当前ubuntu gcc版本,发现是gcc5,说明配置成功。
对于多版本gcc的管理,这样的方法能够很好的避免版本冲突造成的问题,同时这里分享的是gcc的版本管理,相同的g++也可这样做。
审核编辑 黄宇
全部0条评论
快来发表一下你的评论吧 !