centos升级gcc

不同的gcc版本对C++的支持情况不一样,如下图所示:

GCC版本对C++的支持情况

C++版本

GCC版本支持情况GCC版本指定版本的命令标志
C++98完全支持是GCC 6.1之前版本的默认模式 -std=c++98 or -std=gnu++98
C++11完全支持从GCC4.8.1版本开始完全支持-std=c++11 or -std=gnu++11
C++14完全支持 从GCC 6.1版本开始完全支持,是GCC 6.1到GCC 10 (包括) 的默认模式-std=c++14 or -std=gnu++14
C++17完全支持从GCC 5版本开始,到GCC 7版本,已基本完全支持。 是GCC 11版本的默认模式-std=c++17 or -std=gnu++17
C++20未完全支持从GCC 8版本开始陆续支持C++20特性-std=c++20 or -std=gnu++20(GCC9及以前使用-std=c++2a)
C++23未完全支持(标准还在发展中) 从GCC 11版本开始支持C++23特性-std=c++2b or -std=gnu++2b

但是某些centos系统默认安装的gcc是低版本,比如centos7 默认的 gcc 是4.8.5,不完全支持C++14,会导致无法编译部分C++程序,所以我们得升级gcc。但是不要编译gcc!!! 之前我按照《linux升级gcc版本详细教程》的步骤,在make的时候,等待了12个小时也没有编译完成。

我们可以通过devtoolset来升级gcc。参考《CentOS7/完美升级gcc版本方法》。然后我们可以通过把/opt/rh/devtoolset-X/enable中的内容拷贝到/etc/bashrc 中,来激活该gcc。

升级完gcc后,如果我们想要在cmake中指定编译使用该gcc,则要在CMakeLists.txt 中添加如下语句:

SET(CMAKE_C_COMPILER "/opt/rh/devtoolset-X/root/usr/bin/gcc")
SET(CMAKE_CXX_COMPILER "/opt/rh/devtoolset-X/root/usr/bin/g++")

  • 0
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值