【C++】GCC对应C++的版本支持

Ubuntu安装低版本gcc详细教程(安装gcc6.3.0为例) 文章目录一、下载源码包二、准备工作进入工作目录下载编译相关依赖配置编译选项三、编译安装gcc四、配置系统gcc版本 一、下载源码包 官方下载网址如下:https://ftp.gnu.org/gnu/gcc/,选择你想要的 gcc 版本,下载对应的 tar 包,这里我下载的是 gcc-6.3.0.tar.gz : cd ~/Downloads wget https://ftp.gnu.org/gnu/gcc/gcc-6.3.0/gcc-6.3.0.tar.gz 下载速度还行。 二、准备工作 进入工作目录 阅读详情
AI摘要

本文介绍了查看当前GCC版本的情况,阐述了GCC、gcc和g++之间的关系。GCC是GNU编译器集合,gcc是C编译器,g++是C++编译器,二者调用的编译器和传递给链接器的参数不同。还说明了GCC对不同C++标准的支持情况。

1、查看当前GCC的版本

pf@fNUC12WSKi7:~$ gcc -v
Using built-in specs.
COLLECT_GCC=gcc
COLLECT_LTO_WRAPPER=/usr/lib/gcc/x86_64-linux-gnu/9/lto-wrapper
OFFLOAD_TARGET_NAMES=nvptx-none:hsa
OFFLOAD_TARGET_DEFAULT=1
Target: x86_64-linux-gnu
Configured with: ../src/configure -v --with-pkgversion='Ubuntu 9.4.0-1ubuntu1~20.04.2' --with-bugurl=file:///usr/share/doc/gcc-9/README.Bugs --enable-languages=c,ada,c++,go,brig,d,fortran,objc,obj-c++,gm2 --prefix=/usr --with-gcc-major-version-only --program-suffix=-9 --program-prefix=x86_64-linux-gnu- --enable-shared --enable-linker-build-id --libexecdir=/usr/lib --without-included-gettext --enable-threads=posix --libdir=/usr/lib --enable-nls --enable-clocale=gnu --enable-libstdcxx-debug --enable-libstdcxx-time=yes --with-default-libstdcxx-abi=new --enable-gnu-unique-object --disable-vtable-verify --enable-plugin --enable-default-pie --with-system-zlib --with-target-system-zlib=auto --enable-objc-gc=auto --enable-multiarch --disable-werror --with-arch-32=i686 --with-abi=m64 --with-multilib-list=m32,m64,mx32 --enable-multilib --with-tune=generic --enable-offload-targets=nvptx-none=/build/gcc-9-9QDOt0/gcc-9-9.4.0/debian/tmp-nvptx/usr,hsa --without-cuda-driver --enable-checking=release --build=x86_64-linux-gnu --host=x86_64-linux-gnu --target=x86_64-linux-gnu
Thread model: posix
gcc version 9.4.0 (Ubuntu 9.4.0-1ubuntu1~20.04.2) 

可以看到对应的gcc的版本为9.4.0

2、gcc,g++,GNU之间的关系,待补充

GCC:GNU Compiler Collection(GUN 编译器集合),最初是作为C语言的编译器(GNU C Compiler),现在可以编译C、C++、JAVA、Fortran、Pascal、Object-C、Ada等语言
gcc是GCC中的GUN
C Compiler(C 编译器) g++是GCC中的GUN C++ Compiler(C++编译器)

gcc 和 g++ 的区别无非就是调用的编译器不同, 并且传递给链接器的参数不同,更准确的说法是:gcc调用了C compiler,而g++调用了C++ compiler

g++:

g++ 会把 .c 文件当做是 C++ 语言 (在 .c 文件前后分别加上 -xc++ 和 -xnone, 强行变成 C++), 从而调用 cc1plus 进行编译
g++ 遇到 .cpp 文件也会当做是 C++, 调用 cc1plus 进行编译
g++ 还会默认告诉链接器, 让它链接上 C++ 标准库
gcc:

gcc 会把 .c 文件当做是 C 语言. 从而调用 cc1 进行编译
gcc 遇到 .cpp 文件, 会处理成 C++ 语言. 调用 cc1plus 进行编译
gcc 默认不会链接上 C++ 标准库
只要是 GCC 支持编译的程序代码,都可以使用 gcc 命令完成编译。可以这样理解,gcc 是 GCC 编译器的通用编译指令,因为根据程序文件的后缀名,gcc 指令可以自行判断出当前程序所用编程语言的类别

但如果使用 g++ 指令,则无论目标文件的后缀名是什么,该指令都一律按照编译 C++ 代码的方式编译该文件。也就是说,对于 .c 文件来说,gcc 指令以 C 语言代码对待,而 g++ 指令会以 C++ 代码对待。但对于 .cpp 文件来说,gcc 和 g++ 都会以 C++ 代码的方式编译

因此并不能说gcc只能编译C代码,g++只能编译C++代码

不能用gcc编译C++程序的原因是:gcc在链接时不能自动和C++程序使用的库联接,因此只能使用g++来完成链接过程

https://gcc.gnu.org/releases.html对应官网

Release	Release date
GCC 13.2	July 27, 2023
GCC 10.5	July 7, 2023
GCC 11.4	May 29, 2023
GCC 12.3	May 8, 2023
GCC 13.1	April 26, 2023
GCC 12.2	August 19, 2022
GCC 10.4	June 28, 2022
GCC 9.5	May 27, 2022
GCC 12.1	May 6, 2022
GCC 11.3	April 21, 2022
GCC 11.2	July 28, 2021
GCC 9.4	June 1, 2021
GCC 8.5	May 14, 2021
GCC 11.1	April 27, 2021
GCC 10.3	April 8, 2021
GCC 10.2	July 23, 2020
GCC 10.1	May 7, 2020
GCC 9.3	March 12, 2020
GCC 8.4	March 4, 2020
GCC 7.5	November 14, 2019
GCC 9.2	August 12, 2019
GCC 9.1	May 3, 2019
GCC 8.3	February 22, 2019
GCC 7.4	December 6, 2018
GCC 6.5	October 26, 2018
GCC 8.2	July 26, 2018
GCC 8.1	May 2, 2018
GCC 7.3	January 25, 2018
GCC 5.5	October 10, 2017
GCC 7.2	August 14, 2017
GCC 6.4	July 4, 2017
GCC 7.1	May 2, 2017
GCC 6.3	December 21, 2016
GCC 6.2	August 22, 2016
GCC 4.9.4	August 3, 2016
GCC 5.4	June 3, 2016
GCC 6.1	April 27, 2016
GCC 5.3	December 4, 2015
GCC 5.2	July 16, 2015
GCC 4.9.3	June 26, 2015
GCC 4.8.5	June 23, 2015
GCC 5.1	April 22, 2015

GCC的支持情况
GCC编译器对不同的C++标准的支持情况:

C++17
gcc7完全支持,gcc6和gcc5部分支持,gcc6支持度当然比gcc5高,gcc4及以下版本不支持。
C++14
gcc5完全支持,gcc4部分支持,gcc3及以下版本不支持。
C++11
gcc4.8.1及以上完全支持。gcc4.3部分支持,gcc4.3以下版本不支持。

对应表格:
在这里插入图片描述
引用,侵删

技术分享| gcc版本升级到5.2 GCC(GNU Compiler Collection)是一套广泛使用的开源编译器集合,用于编译多种编程语言,包括C、C++、Objective-C、Fortran等。GCC 的不同版本提供了许多新功能、改进和修复,其中包括从 GCC 4.8.5 升级到 GCC 5.2.0 所带来的一些变化。 阅读详情

相关推荐

Dev-C++编译器版本配置与C++标准支持详解

编译器作为将源代码转换为机器码的核心工具,其版本管理直接影响着对编程语言特性的支持程度。以GCC为代表的编译器通过版本迭代逐步增加对新语言标准的支持,如C++11的自动类型推导、C++14的泛型lambda等特性。在工程实践中,合理配置编译器版本不仅能避免语法兼容性问题,还能利用现代语言特性提升开发效率。Dev-C++作为轻量级IDE,通过集成MinGW工具链支持多版本编译器管理,特别适合教学场景和小型项目开发。针对常见的路径配置、标准库缺失等问题,采用正确的工具链安装方式和环境变量设置可以快速解决问题。对

weixin_28835551的博客 333

所有Gcc版本对C和C++的支持情况(超详细版本)

在最近接触的新的项目,由于技术使用为C98风格实现,遇到一个问题需要加锁解决,本能反应用lock_gurad+mutex解决,但是没设置CFLAGS为C++11标准,不确定当前gcc编译器默认支持的C和C++标准是什么,索性就一把都研究透彻,方便后面查看和使用。纯手工一个一个查找标准对照的,十分耗时,多谢支持。

Bussy的博客 9万+

Linux中的多个GCC版本:选择合适的GCC版本进行编程

在Linux系统中,GCC(GNU Compiler Collection)是一个广泛使用的编译器套件,用于编译和构建各种编程语言的代码。本文将介绍如何在Linux上使用多个GCC版本,并展示如何选择适合自己需求的版本进行编程。通过以上步骤,您可以在Linux系统上安装和使用多个GCC版本。根据项目需求和特定优化要求,选择合适的GCC版本进行编程,以获得更好的性能和兼容性。执行上述命令后,系统会列出已安装的GCC版本及其优先级,提示用户选择要使用的版本。命令查看系统中可用的GCC版本,并选择要使用的版本。

ByteGlide的博客 2901

Linux GCC & G++:各个版本发行年份及新增特性盘点

全称主要功能:GCC 是一个编译器套件,支持多种编程语言,包括 C、C++、Fortran、Ada、Go 等。命令行工具gcc全称主要功能:G++ 是 GCC 的一个前端,用于编译 C++ 程序。命令行工具g++

Bobowen的博客 9582

GCC与C/C++标准版本全解析:从-std参数到编译实战

在C/C++开发中,编译器与语言标准的关系常被误解。标准定义语法与行为,而GCC通过-std参数决定按哪个版本解析源码。随着C++20普及与C23定稿,新特性不断涌入,但GCC对各版本的支持是渐进式的,老版本或未指定标准往往导致编译失败。理解GCC版本与标准对应关系、掌握-E/-S/-c/-o各阶段作用、正确使用-I/-L/-l链接库参数,是工程实践的基本功。从通用构建流程到VSCode环境配置,再到嵌入式Keil外接GCC工具链,场景虽异,原理相通。面对常见报错如undefined reference、头

weixin_28826521的博客 330

Cesium实战:5分钟搞定离线地图与地形加载(附避坑指南)

本文详细介绍了Cesium在内网环境下的离线部署实战方案,重点解决了影像与地形数据的本地加载问题。通过逐步指导项目配置、本地瓦片与自定义地形数据的处理,并优化相机控制体验,帮助开发者快速构建安全、高效的三维地球应用,避免常见的401错误与加载失败陷阱。

weixin_30632089的博客 281

VS各个版本对应的C++版本一览表

1、2、

ayang1986的专栏 1610

AI大模型驱动Web UI自动化测试:Playwright与RobotFramework智能整合实践

Web自动化测试是软件质量保障的关键环节,其核心原理是通过脚本模拟用户操作,对Web应用界面进行功能验证。传统方法依赖固定的元素定位和脚本逻辑,在应对频繁的UI变更时面临维护成本高、脚本脆弱的挑战。随着AI大模型技术的发展,其强大的自然语言理解和代码生成能力为自动化测试带来了新的技术价值。通过将大模型的意图理解与代码生成能力,与Playwright强大的浏览器自动化执行引擎以及RobotFramework灵活的关键字驱动框架相结合,可以构建出能够理解自然语言指令、动态生成稳定操作脚本的智能测试系统。这种融合

weixin_28718769的博客 412

centos下编译abseil-cpp

一、预置条件 1、cmake要升级到3.5版本以上。 cmake的升级参考https://blog.youkuaiyun.com/CrystalShaw/article/details/120043042 2、需要升级GCC版本到4.9版本以上,否则会出现如下错误。 error: no matching function for call to ‘StrFormat(const char [5], const int&, double&) GCC升级步骤: 1、安装centos-..

CrystalShaw的博客 4242

Linux 音频驱动(六) ALSA音频驱动之PCM Write数据传递过程

目录1. 前言2. PCM Data Flow3. 总结 1. 前言 本文,我们将以回放(Playback,播放音频)为例,讲解PCM Data是如何从用户空间到内核空间,最后传递到Codec。 在Linux 音频驱动(一) ASoC音频框架简介中,我们给出了回放(Playback)PCM数据流示意图: 对于Linux来说,由于分为 user space 和kernel space,而且两者之间不能随便互相访问。因此用户如果播放音频,则需要调用copy_from_user()将用户数据从user spa

_Modest_的博客 1万+

Openwork 入门指南:开源 AI 桌面助手快速上手

Openwork是一款开源的AI桌面代理工具,提供类似Claude Cowork的免费替代方案。它支持本地运行,确保隐私安全,并能高效处理文件整理、文档读写等任务。支持多种AI模型,通过MIT许可完全免费。安装简单,仅需运行命令行或下载桌面版,需配置API Key后即可使用。操作直观,支持多步骤规划和权限控制,适合自动化重复工作。目前主要支持macOS,未来将扩展至Windows/Linux。建议从简单任务入手,逐步掌握这一高效的数字助手工具。

3802

【Linux】GCC升级以支持不同版本c++标准

GCC各版本对C++标准的支持情况:GCC 4.x仅支持C++98/03,5.x起开始支持C++11/14,7.x全面支持C++17,10.x接近完整支持C++20,11.x起正式完整支持C++20并开始支持C++23新特性。关键特性如lambda表达式、智能指针、结构化绑定等在不同版本中逐步实现。可通过gcc --version和__cplusplus宏检查支持情况,编译时使用-std选项指定标准版本。GCC 5.0后默认标准从C++14逐步升级到C++20。

2301_79866791的博客 1906

软考备考:《系统规划与管理师教程》(第2版)第2章——数字ZG与数智化发展

🔴数字化转型的定义:数字化转型是建立在数字化转换、数字化升级基础上,进一步触及组织核心业务,以新建一种业务模式为目标的高层次转型。

✨ 欢迎来到【Seal ^_^ 的优快云博客】!✨ 960

Ubuntu 升级系统版本的注意事项:分享一些在Ubuntu升级系统版本时需要注意的事项和建议

首先做一些前置工作。

探索C++编程的奥秘,分享深入的技术见解和实践,旨在激发读者创造力与解决问题的思维。 1865

【异常】Cursor 模型服务地域访问限制报错的完整排查与解决方案This model provider doesn‘t serve your region

其本质是:Cursor客户端依赖的上游大语言模型服务提供商,基于自身服务的合规运营范围,对客户端发起的请求进行了来源地域权限校验;当系统检测到请求的网络来源地域,不在该模型服务商官方授权提供服务的地域范围内时,会触发服务访问拦截策略,拒绝响应本次模型调用请求,最终在客户端抛出该报错。合规声明:本文所提供的所有方案,均仅用于技术问题排查与解决,请您在使用过程中严格遵守当地法律法规,以及对应软件与模型服务提供商的用户协议与合规要求。更多关于AI+教育领域的干货,可以关注我的微信公众号一时间获取哦~

奶爸的编程之路,也就一周冷个三天 1134

Python爬虫实战:如何抓取旅游论坛上的帖子、旅行攻略和评论内容

无论是知名的旅游网站,还是地方性的旅游讨论区,用户发布的旅行贴文、攻略和评论往往包含着大量的宝贵信息。本文将详细介绍如何使用Python编写一个爬虫,抓取旅游论坛上的帖子、旅行攻略和评论内容,涵盖从获取页面内容、解析数据到处理动态加载等各个方面的技术。从基本的请求和网页解析,到动态加载页面的处理,再到数据存储和反爬虫技巧,我们详细讲解了抓取旅游论坛数据的全过程。通过本文的介绍,你可以将所学的爬虫技术应用到其他类似的网站抓取任务中,为后续的数据分析、机器学习等任务提供丰富的数据源。在这种情况下,传统的。

2201_76125261的博客 1557

GCC 版本与C++ 标准对应关系

该版本 GCC 不提供该标准的支持。:部分特性可能缺失或存在 Bug。:该标准的所有主要特性均已实现。

eloudy的专栏 2158

十.镜头知识之畸变问题

对于理想光学系统,在一对共轭的物像平面上,像的放大率是一个常数。但是对于实际的光学系统,当视场较大或很大时,像的放大率就要随视场而异,这样就会使像相对于物体失去相似性。这种使像变形的成像缺陷称为畸变。

AIoT深度探索者 | 嵌入式系统架构师 深耕物联网(IoT)与人工智能(AI)融合技术,聚焦​​边缘计算、图像开发、低功耗通信协议​​,致力于智能硬件,关注我获取最新技术文章信息与海量资源~ 2124

C++标准 | GCC版本 | Qt版本 之间的对应关系

C++标准 | GCC版本 | Qt版本 之间的对应关系

像素之间 3255

SAP B1中文培訓教材_SDK

公司内部培训资料,对开发工具 ,DIAPI, UIAPI,Add-ON有详细解说

数学建模模型总结

这是本人在两年内准备参加数学建模竞赛搜集到的模型资料,已经经过了本人的筛选和整理,希望能够对准备参加数学建模竞赛的学弟学妹们提供一些帮助!

CUDA+NVIDIA Driver+Linux+GCC之间的版本对应关系表格

CUDA,NVIDIA Driver,Linux,GCC之间的版本对应关系表格 CUDA与Driver的对应版本 Table 1. CUDA 11.2 Component Versions Component Name Version Information Supported Architectures CUDA Runtime (cudart) 11.2.146 x86_64, POWER, Arm64 cuobjdump 11.2.135 x86_64, POWER, Arm64

q_xiami123的博客 1万+

IMSL CNL 7.0.0 (x86-64)Crack

IMSL CNL 7.0.0 (x86-64)Crack intel的算法库破解文件,这是C++版本的破解文件

【学习笔记】查看你正在使用的 C++ 标准

在初学 C++ 时,经常听到 C++11,C++14,g++,msvc 等术语,它们之间既有关系,又是指代不同的东西,下面就来简单介绍一些这些术语之间的关系。

码的世界 3万+

SIMATIC S7-1200, S7-1500 PID 控制[手册]

SIMATIC S7-1200, S7-1500 PID 控制[手册]

(转载)VS版本、GCC版本与C++版本的对应关系

目前C语言的标准有:C89(ANSI C)、C90、C95、C99(ISO C)、C11(C1x) 目前C++语言的标准有:C++98、C++03(对98小幅修改)、C++11(全面进化)、C++14、C++17

D4G1TIAO的博客 2335

CentOS 7上升级/安装gcc

转载请注明文章出处:https://tlanyan.me/install-upgrade-gcc-on-centos/ CentOS 7官方源带的gcc最新版本是4.8.5,发布于2015年,年代久远且不支持c++14。要编译c++14及以上项目,必须要升级现有版本或者安装高版本的gcc。 问...

468

boost 1.83.0 gcc

boost 1.83.0 对 GCC 编译器版本的要求主要取决于你使用的。

baidu_38316985的博客 42

Centos6升级GCC到4.7

用gcc4.4.7编译的时候提示不支持c11,于是只能升级到4.7,(增加了55M,其实是不想升级的)。具体程序文件位置在:/opt/centos/devtoolset-1.1/root/usr/bin/*使用最新的gcc环境,所以要替换本地的,使用软连接来完成(也可以设置环境变量,看自己喜好)安装文件放置位置在:/opt/centos/devtoolset-1.1。

pang9998的博客 944

Dev-C++默认使用哪个编译器?

如需验证当前配置,请在 Dev-C++ 中打开「工具」→「编译选项」→「编译器」查看路径。用户可手动替换为其他 GCC 分支(如。Dev-C++ 默认使用的是。

2509_94270625的博客 362
上一篇: 【Opencv】三维重建之cv::recoverPose()函数(1)
下一篇: 【ROS】自定义消息方面的bug总结(1)
人间小客
博客等级 码龄8年 253粉丝 105原创
评论 1
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

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

抵扣说明:

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

余额充值