在CentOS8、RHEL8系统中,默认gcc版本已经是8.x.x版本,但是在一些编译场景中,还是需要高版本的gcc。
之前吴昊也写过CentOS 7完美升级gcc版本方法:https://blog.whsir.com/post-4975.html,但是之前的文章不适用8.x的版本,吴昊也强调过,不要去编译升级gcc,编译升级后可能会给你带来额外的麻烦。
本文基于CentOS8.3版本验证通过,理论适用于所有RHEL8.x的衍生版本!
在CentOS8版本中,红帽也提供了开发工具包管理gcc版本,install的包名从devtoolset-x变成了gcc-toolset-x,通过该方式升级gcc好处就是随时可以切换gcc版本,不破坏原有gcc环境。
截至2023年12月,gcc-toolset支持gcc9、gcc10、gcc11、gcc12、gcc13版本
1 2 3 4 5 |
gcc-toolset-9对应gcc9.x.x版本 gcc-toolset-10对应gcc10.x.x版本 gcc-toolset-11对应gcc11.x.x版本 gcc-toolset-12对应gcc12.x.x版本 gcc-toolset-13对应gcc13.x.x版本 |
切换gcc至10.x.x版本
配置yum源,非必须,默认的yum源也可,我这里就基于系统的默认源
安装gcc-toolset-10
1 |
dnf install gcc-toolset-10 |
激活gcc版本,使其生效
1 |
scl enable gcc-toolset-10 bash |
或
1 |
source /opt/rh/gcc-toolset-10/enable |
此时通过gcc --version命令可以看到,gcc版本已经变成10.x.x,值得注意的是这仅仅在当前bash生效,如果需要永久生效,可以请自行添加环境变量。
其它gcc-toolset-12、gcc-toolset-13版本同理,这样的好处是,在当前系统编译环境可能会用到gcc的高版本,并不改变系统原有环境。
网上一些作死的文章还在复制粘贴的告诉你如何编译升级gcc版本,非常不推荐这么去做,这样可能会导致一系列的其它问题出现。
原文链接:CentOS8完美升级切换gcc版本方法,转载请注明来源!