用以下命令:

yum install gcc

安装的只有gcc,而不会安装g++。gcc是编译器合集,而gcc-g++或简称g++则是C++编译器。gcc成为了编译器的选择器。gcc通过识别被编译的源代码的后缀名,来启用不同的编译器来编译。如果是m.c,则会启用c语言编译器编译;如果是m.cpp,则会启用g++来编译。我们都可以用gcc m.c(pp)来实现编译。
    但是使用上述命令安装的gcc,并没有安装g++编译器。所以你编译cpp文件时会提示:
gcc: error trying to exec 'cc1plus': execvp: No such file or directory
    而如果直接执行g++命令,则提示命令找不到:
[root@VM_41_21_centos pkg]# g++ --version
-bash: g++: command not found
    这充分说明,gcc和g++并不是一回事。而区别在一开头就解释了。
    如果要安装g++编译器,则需要再安装gcc-c++,命令如下:
yum install gcc-c++
    安装完了,我们就需要看一下gcc编译器的版本:
[root@VM_41_21_centos pkg]# gcc --version
gcc (GCC) 4.8.5 20150623 (Red Hat 4.8.5-11)
Copyright (C) 2015 Free Software Foundation, Inc.
This is free software; see the source for copying conditions.  There is NO
warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
    我们可以在查看下g++编译器的版本:
[root@VM_41_21_centos pkg]# g++ --version
g++ (GCC) 4.8.5 20150623 (Red Hat 4.8.5-11)
Copyright (C) 2015 Free Software Foundation, Inc.
This is free software; see the source for copying conditions.  There is NO
warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
    之前我问朋友同事gcc和g++查出来的版本有区别吗?他们说没有区别。但是最近折腾服务器折腾的多,升级编译器后,发现gcc和g++查出来的版本号不一样,其中必定有蹊跷。通过一步步慢慢的摸索查资料学习,也就慢慢整明白了。
    gcc和g++的版本,我们一般都会同步的安装或升级。但是有时候也可能出现不同步的现象。上面就甚至没有安装g++。如果在升级编译器的时候,只升级了gcc,那么gcc和g++的版本都不一样了。至于版本不一样,是不是用gcc和g++编译会有差异,我没有研究了。当然,gcc编译C代码,g++编译c++代码,肯定都是按照gcc或g++的版本来的。但是gcc来编译C++代码,就不知道是什么情况了。(你可以用低版本的gcc编译C++11代码,安装的g++的版本完全支持C++,这样可以测试gcc和g++版本不一致是不是会产生一些问题或者说是一个什么样的情况。)
    如果没有安装g++,是没有办法编译C++代码的。gcc编译C++代码只是一个壳动作,真正编译是转交给了g++的。gcc链接C++动态库时,也是需要使用g++的。
    很多人要么就是把gcc和g++混为一谈,要么就是根本就搞不清楚,非常混乱。然而我仔细研究之后,才发现并不复杂。
    gcc最开始就仅仅是C语言的编译器,后来支持更多的语言了,其中包括C++。所以gcc已经变成了编译器选择器。不过gcc的基本属性,即编译C语言的能力还是存在的。而其他语言则要传递给其他的编译器组件。这也是我们安装时是指定gcc-c++的原因了,C++编译器即g++成为了gcc编译器集合中的一个组件而已。
    当然,以上都是我个人的一个大致的分析和理解,足以支持初学者了解基本的背景了。我作为一个初学者,只是因为认真研究了,总体的认识还是对的,至于太具体的细节,可能认知有限而错误。如果是这样,希望您能够指正。

from(codexia)

gcc和g++的区别:安装、版本、编译(转)的更多相关文章

  1. 结合python版本安装python-devel gcc和g++的区别 安装前做yum搜索

    [test@ecs autocloudservices]# yum install python-develLoaded plugins: fastestmirrorLoading mirror sp ...

  2. Linux - gcc和g++的区别

    一般linux系统都自带了gcc编译器的,你可以用你的安装光盘去安装,如果你是觉得自带的gcc版本太低了,可以去gcc的官方网站可以下载到,编译需要很长的时间,如果你只编译C或者C++可以只下载gcc ...

  3. 【转载】gcc和g++的区别

    [说明]本文转载自 静心 的文章 http://blog.163.com/lu_jun520/blog/static/5699613420116205148239/ 一般linux系统都自带了gcc编 ...

  4. gcc和g++的区别【转自中国源码网】

    gcc和g++的区别[转自中国源码网] gcc和g++都是GNU(组织)的一个编译器. 误区一:gcc只能编译c代码,g++只能编译c++代码两者都可以,但是请注意:1.后缀为.c的,gcc把它当作是 ...

  5. linux中gcc和g++的区别

    1.两者都是编译器 2.gcc编译c语言:g++既可以编译c语言,也可以编译c++语言 3.gcc不能自动链接库文件,一般用g++来链接库文件,非要用gcc的话,一般使用gcc -lstdc++命令 ...

  6. gcc 与 g++的区别

    原文: http://www.cnblogs.com/wb118115/p/5969775.html ------------------------------------------------- ...

  7. 【C/C++】Linux的gcc和g++的区别

    Windows中我们常用vs来编译编写好的C和C++代码:vs把编辑器,编译器和调试器等工具都集成在这一款工具中,在Linux下我们能用什么工具来编译所编写好的代码呢,其实Linux下这样的工具有很多 ...

  8. gcc 与g++的区别

    原文 http://www.cnblogs.com/wb118115/p/5969775.html 什么是gcc / g++ 首先说明:gcc 和 GCC 是两个不同的东西 GCC:GNU Compi ...

  9. gcc、g++、gdb安装

    Windows安装 有闲工夫在Windows上安装g++/gcc/gdb,还不如装个虚拟机安装Linux,在Linux上安装 但是我还是要讲的 首先,需要安装MinGW,MinGW,是Minimali ...

随机推荐

  1. UGUI源码之EventSystem

    今天研究下UGUI的源码,先从EventSystem入手.EventSystem是用来处理点击.键盘输入以及触摸等事件的. 1.BaseInputModule EventSystem开头声明了两个变量 ...

  2. VUE CLI环境搭建文档

    VUE CLI环境搭建文档 1.安装Node.js 下载地址 https://nodejs.org/zh-cn/download/ 2.全局安装VUE CLI win+R键打开运行cmd窗口输入一下代 ...

  3. 世界500强ING集团顺利的敏捷转型之路

    案例背景 为什么银行要像灰狗一样快? 荷兰国际集团(ING),成立于1991年,主营业务银行与保险业务,在全球45个国家和地区拥有分支机构,总资产887亿欧元(2018),全球53,000多名员工,拥 ...

  4. 如何在ArcGIS中恢复注记文字

    文字标注是地图上一种特殊的视觉元素,可通过文字表达图形符号难以说明的地图内容,它与图形符号结合在一起存在于地图上,是关乎地图构图美的关键因素之一. MapGIS软件下子图对象和注释对象统统保存在点文件 ...

  5. 从操作系统层面理解Linux下的网络IO模型

    I/O( INPUT OUTPUT),包括文件I/O.网络I/O. 计算机世界里的速度鄙视: 内存读数据:纳秒级别. 千兆网卡读数据:微妙级别.1微秒=1000纳秒,网卡比内存慢了千倍. 磁盘读数据: ...

  6. JavaScript面向对象 实例与原型

    JavaScript 面向对象 和 C# 不太一样,js 的对象是继承自原型的如下: 首先创建一个 js 实例 new  function function f () {} 这个函数 会继承 Func ...

  7. cogs 14. [网络流24题] 搭配飞行员 二分图最大匹配 匈牙利算法

    14. [网络流24题] 搭配飞行员 ★★   输入文件:flyer.in   输出文件:flyer.out   简单对比时间限制:1 s   内存限制:128 MB [问题描述]     飞行大队有 ...

  8. vnpy源码阅读学习(4):自己写一个类似vnpy的UI框架

    自己写一个类似vnpy的界面框架 概述 通过之前3次对vnpy的界面代码的研究,我们去模仿做一个vn.py的大框架.巩固一下PyQt5的学习. 这部分的代码相对来说没有难度和深度,基本上就是把PyQt ...

  9. Android Studio 图形化设计 UI 界面

    我们开发 Android 程序必定是从 UI 开始的 ,使用最新版的 Android Studio 可以在图形化界面下设计软件 UI, Android Studio 默认的布局是 Constraint ...

  10. urllib基本用法(了解)

    一.urllib.urlopen 1.urlopen from urllib import request r = request.urlopen('http://www.baidu.com/') # ...