原文链接:https://www.linuxidc.com/Linux/2008-03/11943.htm

GCC and g++分别是gnu的c & c++编译器 GCC/g++在执行编译工作的时候,总共需要4步

1.预处理,生成.i的文件[预处理器cpp]
2.将预处理后的文件不转换成汇编语言,生成文件.s[编译器egcs]
3.有汇编变为目标代码(机器代码)生成.o的文件[汇编器as]
4.连接目标代码,生成可执行程序[链接器ld]

1 :两者都可以编译C和C++代码,但是请注意:
(1).后缀为.c的,GCC把它当作是C程序,而g++当作是c++程序;后缀为.cpp的,两者都会认为是c++程序,注意,虽然c++是c的超集,但是两者对语法的要求是有区别的。C++的语法规则更加严谨一些。

(2).编译阶段,g++会调用GCC,对于c++代码,两者是等价的,但是因为GCC命令不能自动和C++程序使用的库联接,所以通常用g++来完成链接,为了统一起见,干脆编译/链接统统用g++了,这就给人一种错觉,好像cpp程序只能用g++似的。

2 :对于__cplusplus宏,实际上,这个宏只是标志着编译器将会把代码按C还是C++语法来解释,如上所述,如果后缀为.c,并且采用GCC编译器,则该宏就是未定义的,否则,就是已定义。

3 :编译可以用GCC/g++,而链接可以用g++或者GCC -lstdc++。因为GCC命令不能自动和C++程序使用的库联接,所以通常使用g++来完成联接。但在编译阶段,g++会自动调用GCC,二者等价。

Linux下GCC与G++的区别和联系相关推荐

  1. Linux的gcc和g++的区别

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

  2. 【Linux】gcc和g++的区别

    gcc和g++编译器的区别 gcc 现在是 gnu 提供的一些编译器工具的集合(Gnu Compiler Collection),以前是gnu 组织提供的 c 编译器(Gnu C Compiler). ...

  3. linux下gcc、g++不同版本的安装和切换

    Ubuntu 18.04预装GCC版本为7.3,但有时在编译是需要用的不同gcc版本,下面介绍,如何安装不同的gcc 和g++,并设置根据不同的需要在不同版本之间切换. 1. 可以通过如下命令查看当前 ...

  4. Linux下gcc/g++编译器gdb调试器和makefile的使用

    文章目录 一.gcc的使用 gcc选项 二.gdb的使用 三.Linux项目自动化构建工具-make/Makefile 3.1 概念 3.2 使用 3.3 原理 一.gcc的使用 首先我们知道一个C/ ...

  5. Linux 下 gcc的安装

    Linux 下 gcc的安装 gcc的安装 问题 检查版本 解决过程 gcc的安装 问题 在一个新的Linux服务器上安装nginx的时候,命令都不能解析,缺少gcc编辑器,安装gcc的命令也出错. ...

  6. gcc和g++的区别[zz]

    很多人不是很明白GCC与G++的区别 gcc和g++都是GNU(组织)的一个编译器. 误区一:gcc只能编译c代码,g++只能编译c++代码 两者都可以,但是请注意: 1.后缀为.c的,gcc把它当作 ...

  7. gcc和g++的区别

    gcc和g++都是GNU(组织)的一个编译器. 误区一:gcc只能编译c代码,g++只能编译c++代码 两者都可以,但是请注意: 1.后缀为.c的,gcc把它当作是C程序,而g++当作是c++程序:后 ...

  8. linux中fopen和open的区别,Linux下open与fopen的区别

    int open(const char *path, int access,int mode) path 要打开的文件路径和名称 access 访问模式,宏定义和含义如下: O_RDONLY      ...

  9. Linux系统怎么编译sin,linux下gcc编译sin函数出错的问题

    linux下gcc编译sin函数出错的问题 收藏 Q: I keep getting errors due to library functions being undefined, but I'm ...

最新文章

  1. [OS复习]虚拟存储管理技术 1
  2. Flink 在唯品会的实践
  3. php:兄弟连之面向对象版图形计算器1
  4. 201512-5 矩阵
  5. 被骂后,才知道找的年终总结模板都是错的
  6. 文博项目-终端网口测试-软件
  7. 小心错误使用EasyUI 让网站性能减半
  8. IoT---(1) 窄带物联网NB-IoT协议必须要了解的几个问题
  9. 小蚂蚁学习PHP性能优化(2)--PHP语言级性能优化
  10. 在线985,211高校查询
  11. 第11章从 Web 抓取信息
  12. PCI驱动的注册和初始化
  13. 电子电路:电流镜电路
  14. MATLAB阶段性方程组,[转载]matlab 解方程组
  15. 限时5折,仅剩1天!这波羊毛我撸爆~
  16. 如何获取微信好友的地理位置信息
  17. 电脑重装系统word从第二页开始有页眉页脚如何设置
  18. 正斜杠(/)反斜杠(\)简单区别
  19. 采购申请、采购订单、供应商
  20. linux rt patch 强实时,Linux RT(2)-硬实时Linux(RT-Preempt Patch)的中断线程化

热门文章

  1. linux 下mongo 基础配置
  2. c free 使用MSDN library定制
  3. 网络流24题-魔术球问题
  4. js点击获取连接的内容
  5. CCF CSP 201612-1中位数(满分代码)
  6. charles: 使用小结
  7. Android 角色时间戳
  8. xxx while the managed IDbConnection interface was being used: Login failed for user xxx
  9. pongo - 字符串消除
  10. 六、CPU优化(4)NUMA架构