您现在的位置是:首页 >其他 >所有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 |





U8W/U8W-Mini使用与常见问题解决
QT多线程的5种用法,通过使用线程解决UI主界面的耗时操作代码,防止界面卡死。...
stm32使用HAL库配置串口中断收发数据(保姆级教程)
分享几个国内免费的ChatGPT镜像网址(亲测有效)
Allegro16.6差分等长设置及走线总结