用以下命令:

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. 256位AES加密和解密

    /// <summary> /// 256位AES加密 /// </summary> /// <param name="toEncrypt">& ...

  2. Git将一个项目同时从本地推送到GitHub和Gitee

    前言 博主是根据自己的情况写这篇博文的,每个人遇到的情况和需求可能不一样哈,所以初始的步骤也不一定一致,但是同时推送到Github和Gitee的步骤都会是一致滴! Gitee拉取Github仓库 直接 ...

  3. django操作命令

    下载安装 pip3 install django==1.11.21 -i https://pypi.tuna.tsinghua.edu.cn/simple 创建项目 1.终端找到存放项目的文件夹,dj ...

  4. 编写TypeScript工具类型,你需要知道的知识

    什么是工具类型 用 JavaScript 编写中大型程序是离不开 lodash 工具的,而用 TypeScript 编程同样离不开工具类型的帮助,工具类型就是类型版的 lodash .简单的来说,就是 ...

  5. SycSec成都信息工程大学2019CTF-前五道WEB题writeup

    一.WEB (1)一起来撸猫 flag藏在标签的注释内  <!--这是注释--> (2)你看见过我的菜刀么 eval漏洞 利用蚁剑连接 连接密码就是要post传的参数 连接成功后在网站根目 ...

  6. 美食家App开发日记4

    研究了卡片式布局中的Recyclerview的用法,但是调试了很长时间,导入包总是有问题,一到手机上运行就会闪退.还是在网上查了很多方法,很不开心我还是解决不了.

  7. 通过示例学习rholang(上部:课程0-6)

    通过例子和实践来学习rho语言.下面的例子和练习都很值得去运行.阅读.修改和完善.修改练习和教程中任何你感到有意思的代码,这样能够获得最好的学习效果.该教程包含了rho语言最常见以及最重要的特性,足以 ...

  8. Sublime Text 3 安装包

    摘要 Error while loading PyV8 binary:exit code 3 .sublime-package报错 安装SublimeREPL,可以运行python代码 安装local ...

  9. Python3之MySQL操作

    1.安装pymysql PyMySQL 是在 Python3.x 版本中用于连接 MySQL 服务器的一个库,在使用之前需要进行安装,可以使用以下命令安装最新版的 PyMySQL: 1).在cmd命令 ...

  10. python数据类型之字典操作

    Python字典是另一种可变容器模型,且可存储任意类型对象,如字符串.数字.元组等其他容器模型.一.创建字典字典由key和value成对组成.基本语法如下: infos = {"name&q ...