您现在的位置是:首页 >学无止境 >所有Gcc版本对C和C++的支持情况(超详细版本)网站首页学无止境
所有Gcc版本对C和C++的支持情况(超详细版本)
在最近接触的新的项目,由于技术使用为C98风格实现,遇到一个问题需要加锁解决,本能反应用lock_gurad+mutex解决,但是没设置CFLAGS为C++11标准,不确定当前gcc编译器默认支持的C和C++标准是什么,索性就一把都研究透彻,方便后面查看和使用。纯手工一个一个查找标准对照的,十分耗时,多谢支持。
1、查看当前GCC的版本
首先要确认自己编译环境当前安装的gcc版本。
通过gcc --verison查看,我自己电脑的编译版本如下:
2、支持版本的对应查找
然后到GCC官网(GCC Releases- GNU Project)查看对应的默认支持版本:
所以默认支持版本是C17标准
3、GCC所有版本支持C++和C语言情况
版本 | 发布时间 | 默认支持C标准 | 默认支持C++标准 |
April 26, 2023 | C17 | C++17 | |
August 19, 2022 | C17 | C++17 | |
June 28, 2022 | C17 | C++14 | |
May 27, 2022 | C17 | C++14 | |
May 6, 2022 | C17 | C++14 | |
April 21, 2022 | C17 | C++17 | |
July 28, 2021 | C17 | C++17 | |
June 1, 2021 | C17 | C++14 | |
May 14, 2021 | C17 | C++14 | |
April 27, 2021 | C17 | C++17 | |
April 8, 2021 | C17 | C++14 | |
July 23, 2020 | C17 | C++14 | |
May 7, 2020 | C17 | C++14 | |
March 12, 2020 | C17 | C++14 | |
March 4, 2020 | C17 | C++14 | |
November 14, 2019 | C11 | C++14 | |
August 12, 2019 | C17 | C++14 | |
May 3, 2019 | C17 | C++14 | |
February 22, 2019 | C17 | C++14 | |
December 6, 2018 | C11 | C++14 | |
October 26, 2018 | C11 | C++98 | |
July 26, 2018 | C17 | C++14 | |
May 2, 2018 | C17 | C++14 | |
January 25, 2018 | C11 | C++14 | |
October 10, 2017 | C11 | C++98 | |
August 14, 2017 | C11 | C++14 | |
July 4, 2017 | C11 | C++14 | |
May 2, 2017 | C11 | C++14 | |
December 21, 2016 | C11 | C++14 | |
August 22, 2016 | C11 | C++14 | |
August 3, 2016 | C90 | C++98 | |
June 3, 2016 | C11 | C++98 | |
April 27, 2016 | C11 | C++14 | |
December 4, 2015 | C11 | C++98 | |
July 16, 2015 | C11 | C++98 | |
June 26, 2015 | C90 | C++98 | |
June 23, 2015 | C90 | C++98 | |
April 22, 2015 | C90 | C++98 | |
December 19, 2014 | C90 | C++98 | |
October 30, 2014 | C90 | C++98 | |
July 16, 2014 | C90 | C++98 | |
June 12, 2014 | C90 | C++98 | |
May 22, 2014 | C90 | C++98 |
4、GCC对C++版本迭代支持情况
C++版本 | GCC版本支持情况 | GCC版本 | 指定版本的命令标志 |
C++98 | 完全支持 | 从GCC6.1之前版本的默认模式 | -std=c++98 or std=gun++98 |
C++11 | 完全支持 | 从GCC4.8.1版本完全支持 | -std=c++11 or std=gun++11 |
C++14 | 完全支持 | 从GCC6.1版本开始完全支持,从6.1-10(包括)的默认模式 | -std=c++14 or std=gun++14 |
C++17 | 完全支持 | 从GCC 5版本开始支持,到GCC 7版本已完全支持,是GCC 11到13版本的默认模式 | -std=c++17 or std=gun++17 |
C++20 | 未完全支持 | 从GCC 8版本开始支持 | -std=c++20 or std=gnu++20(GCC 9以及之前版本使用-std=c++2a) |
C++23 | 未完全支持(标准开发中) | 从GCC 11版本开始支持 | -std=c++2b or std=gnu++2b |