关注公众号cpp_coder,学习更多实用技术。

【说明】本公众号纯属于个人,没有商业运作。推送文章是C++技术网原创文章,供大家学习。希望大家多多支持,多多推荐。我们所有的推送,没有收入一分钱,只是为了大家能够有一个公众号学习最朴实的技术。如果文章写得不好的地方,请指正。

文章来源:C++技术网 原创文章版权所有,未经授权,禁止转载。

目前C语言的标准有:C89(ANSI C)、C90、C95、C99(ISO C)、C11(C1x)

目前C++语言的标准有:C++98、C++03(对98小幅修改)、C++11(全面进化)、C++14、C++17

C语言标准的介绍,请参考:C语言标准简介C89(ANSI C)、C99(ISO C)、C11(C1x)

各种C++标准对应的编译器支持情况,请参考官方的对照表:C++ compiler support

简单来分析一下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向下兼容,支持低版本的C++标准。现在很多服务器yum里的gcc版本是4.8.5,也就是可以完全支持C++11了,部分支持C++14,不支持C++17。

如果你想尝鲜,可以对照以上说明来选择gcc的版本,选择完全支持的版本。不过似乎gcc7还没有正式放出来。

而在正式开发中,如果也想使用C++11和C++14的特性,最好的选择就是GCC5。当然这里说的都是主版本,副版本当然都选择最高的。副版本一般是对较低副版本进行功能优化、小幅修改和修复Bug。

下面是各种GCC编译器的官方源码下载地址列表:GNU的GCC编译器下载列表http://ftp.gnu.org/gnu/gcc/

下面是GCC版本列表的截图:

为了兼顾工作和学习,所以我推荐使用gcc-5.4.0版本。点gcc-5.4.0进入下载,如下图所示:

因为我们这里选择的版本是5.4.0,很多Centos系统的yum能够获取到的的只有4.8.5,甚至更低。所以,我们不能通过yum快速安装5.4.0。既然yum没有,那么我们去gnu的网站下载源码,自己编译安装就好了。

如果你的系统没有安装过任何gcc,是没有办法编译gcc并安装gcc的。这样,我们需要先直接安装一个gcc,也就是yum提供的gcc的安装包。我们安装好gcc后,再用gcc来编译高版本的GCC,然后再安装高版本的GCC。再将配置更新,就可以使用最新的GCC了。

这里特别需要说明的一下,因为很多人和我一样,对Linux上的安装都是一知半解,只是通过网上查询安装方法,实在是难以学到东西。我明白了这个套路,现在来科普一下,希望Linux新手能够更快了解Linux的安装知识。

Linux是一个开源系统,GCC也是一个开源软件。在Windows中,软件都是直接安装使用的。到了Linux,才听说编译安装。动不动就把源码给你,说是开源的,然后编译安装步骤要吓死你。如果理不清Linux的套路,那真是感觉Linux真的太难了,搞了半天,连安装软件这点事情都稀里糊涂的。

对于Linux安装的不同的方式以及不同编译方式的产生的背景介绍,请阅读《Linux中安装软件的背景知识介绍-直接安装和编译安装的区别》

文章来源:C++技术网 原创文章版权所有,未经授权,禁止转载。

linux6.3支持gcc版本,Linux编程中GCC对C++标准支持和如何选择GCC版本使用相关推荐

  1. Linux 编程中的API函数和系统调用的关系【转】

    转自:http://blog.chinaunix.net/uid-25968088-id-3426027.html 原文地址:Linux 编程中的API函数和系统调用的关系 作者:up哥小号 API: ...

  2. linux 编程中忽略SIGPIPE信号

    linux 编程中忽略SIGPIPE信号 SIGPIPE 简单来说,就是客户端程序向服务器端程序发送了消息,然后关闭客户端,服务器端返回消息的时候就会收到内核给的SIGPIPE信号. TCP的全双工信 ...

  3. linux标准c和c编译器6,linux内核中GNU C和标准C的区别

    linux内核中GNU C和标准C的区别 今天看了一下午的linux内核编程方面的内容,发现linux 内核中GNU C与标准C有一些差别,特记录如下: linux 系统上可用的C编译器是GNU C编 ...

  4. linux启动程序api编程,Linux编程中关于API函数与系统调用间关系

    用户态xyz()函数,内核最终一般会调用形如sys_xyz()的服务例程来处理(不过也有一些例外,这里暂时不考虑) 函数xyz()是直接提供给用户编程使用的.图中"SYSCALL" ...

  5. 【Linux应用编程】Linux编程中常见错误码含义及查询方式

    文章目录 1 前言 2 错误码查询 3 错误码翻译表 1 前言   linux应用程序开发过程中,经常会遇到一些错误信息的返回,存在的可能性有,参数有误.非法访问.系统资源限制.设备/文件不存在.访问 ...

  6. 关于使用gcc在Linux系统中进行c语言程序的编译

    目录 1.可执行文件的组装 学习使用gcc生成静态库和动态库 静态库生成 动态库生成 使用实例 静态库使用 动态库使用 2.gcc编译的各种工具 关于gcc编译器下的工具 Binutils c运行库 ...

  7. Linux编程中的坑——C++中exit和return的区别

    今天遇到一个坑,折腾了一天才把这个坑填上,情况是这样的: 写了段代码,在main()函数中创建一个分离线程,结果这个线程什么都没干就直接挂掉了,代码长这样: [cpp] view plaincopy ...

  8. 十三、linux编程中目录IO常用编程函数

    概念: 索引节点,Inode是Index Node的缩写,存储于文件系统上的任何文件都可以用索引节点来表示,所以也可以说索引节点是整个linux文件系统的基础.操作系统在读取硬盘的时候不是一个块一个块 ...

  9. ubuntu版本Linux系统中安装jira

    介绍有关jira的相关安装与破解. 1. 安装jdk jdk安装1.8版本以上 2. 安装mysql Linux系统MySQL开启远程连接:1. 点击打开链接     2. 点击打开链接 将JIRA应 ...

最新文章

  1. Unity中那些事半功倍的好插件
  2. Mysql Innodb 引擎优化(-)
  3. 为什么互联网能创造商业奇迹——我的互联网产品观
  4. File类对文件的操作应用
  5. 【C++基础】 类模板
  6. PostgreSQL11.7逻辑复制压测
  7. linux 重启服务器_linux入门-----6
  8. 15 年老程序员自述:8 个影响我职业生涯的重要技能
  9. 计算机管理没有Android手机项,我可以从计算机控制Android手机吗? | MOS86
  10. 建行网银盾无法识别怎么办
  11. selenium模拟登陆12306
  12. python反反爬,爬取猫眼评分
  13. 【NOIP2015模拟10.28B组】终章-剑之魂题解
  14. 笔记本建立WIFI热点的bat命令
  15. 【2019蓝桥杯国赛B组】排列数
  16. 一文读懂计算机组成,一文读懂为什么要做动态心电图检查?
  17. 管理计算机的作用是什么意思,电脑uac是什么意思 电脑uac有哪些功能
  18. Au 入门系列之二:录音
  19. Android 微信界面简单的侧滑效果+listview+DrawerLayout+fragment+viewpager
  20. 整合产业链是关键——关于开放平台的一些思考

热门文章

  1. python实现ldap接入
  2. Python3.8 新特性:仅位置参数
  3. linux驱动双摄像头,详解linux 摄像头驱动编写
  4. pcb成型板aoi检测_缺陷检测 | PCB AOI质量检测之自动定位核选取算法
  5. linux 进程间通信 dbus-glib【实例】详解二(下) 消息和消息总线(ListActivatableNames和服务器的自动启动)(附代码)
  6. vmware ubuntu 虚拟机每次启动都蓝屏怎么办?
  7. 黑马程序员C语言基础(第八天)复合类型(自定义类型)(结构体)、共用体(联合体)、枚举enum、 typedef
  8. 轻轻松松明白什么是反射,反射有什么用,简单上手反射以及反射的优缺点
  9. Java中的主类概念以及public static void main方法的分析
  10. Java PriorityQueue优先队列详解(源码+图文步骤解析)