GCC G++ C C++的区别

转载 2016年08月31日 15:44:05
gcc 是c的编译器,g++是c++的编译器。cc一般是一个符号连接,指向gcc。 
CC一般是makefile里面的一个名字,具体是什么根据实际情况决定。 
gcc和g++都是GNU(组织)的一个编译器。 

误区一:gcc只能编译c代码,g++只能编译c++代码 
两者都可以,但是请注意: 
1,后缀为.c的,gcc把它当作是C程序,而g++当作是c++程序;后缀为.cpp的,两者都会认为是c++程序,注意,虽然c++是c的超集,但是两者对语法的要求是有区别的。C++的语法规则更加严谨一些。 
2,编译阶段,g++会调用gcc,对于c++代码,两者是等价的,但是因为gcc命令不能自动和C++程序使用的库联接,所以通常用g++来完成链接,为了统一起见,干脆编译/链接统统用g++了,这就给人一种错觉,好像cpp程序只能用g++似的。 

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

误区三:编译只能用gcc,链接只能用g++ 
严格来说,这句话不算错误,但是它混淆了概念,应该这样说:编译可以用gcc/g++,而链接可以用g++或者gcc -lstdc++。因为gcc命令不能自动和C++程序使用的库联接,所以通常使用g++来完成联接。但在编译阶段,g++会自动调用gcc,二者等价。 

请问CC cc gcc g++本质区别在什么地方? 
传统上, UNIX OS 会配带 C compiler by default. 一般用符号名 cc. 而C++ compiler 需要另外买. 
常见的有: 
Linux: gcc/g++ 
Solaris: cc/CC 
HP-UX: aCC 
AIX: xlc/xlC 
SCO: ?/? 
几乎所有的情况, C/C++ compiler 都只是front end driver. 后面的编译器是一样的. 比如gcc, g++ 提供不同的选项给编译器以及link editor. 这些包括用户选项, 缺省选项, 对应的缺省系统库. 每个compiler有一个configuratoin file来指定这些缺省选项. 使用 verbose mode (-v) 可以看到这些内容. 
C++ 程序因为语法(namespace, class, overload...), 需要mangle 所有的symbol name. 与C程序link的时候需要用extern "C". 
C++的编译器肯定可以编译C的的代码,注意除了C++对C的语法扩充之外,编译和链接C和C++的标准库通常也不一样呢。我用gcc而非g++也编译了C++的程序就证明了这一点。

GNU gcc 和 g++ 的区别详解

gcc 和 g++ 都是 GNU 组织的编译器。 误区一: gcc 只能编译 C 代码,g++ 只能编译 C++ 代码 两者都可以,但是请注意: 1. 后缀为 .c 的,gcc 把它当作是 ...
  • shejiannan
  • shejiannan
  • 2016年01月19日 15:24
  • 2334

OJ中的语言选项里G++ 与 C++的区别

概念上:C++是一门计算机编程语言,而G++则是C++的编译器。 GCC和G++都是GUN的编译器,cc是Unix系统的C Compiler,而gcc则是GNU Compiler Collection...
  • FeBr2
  • FeBr2
  • 2016年07月29日 20:24
  • 1821

OJ提交题目中的语言选项里G++与C++的区别

一、OJ提交题目中的语言选项里G++与C++的区别 http://www.th7.cn/Program/cp/201405/199001.shtml 首先更正一个概念,C++是一门计算机编程语言,...
  • hermito
  • hermito
  • 2016年05月22日 08:52
  • 2024

GCC G++ C C++的区别

gcc 是c的编译器,g++是c++的编译器。cc一般是一个符号连接,指向gcc。  CC一般是makefile里面的一个名字,具体是什么根据实际情况决定。  gcc和g++都是GNU(组织)的一...
  • tcherry
  • tcherry
  • 2014年05月21日 11:51
  • 625

poj上 G++ GCC C++编译器的区别?

Linux 中最重要的软件开发工具是 GCC。GCC 是 GNU 的 C 和 C++ 编译器。实际上,GCC 能够编译三种语言:C、C++ 和 Object C(C 语言的一种面向对象扩展)。利用 g...
  • u010700335
  • u010700335
  • 2014年09月02日 19:56
  • 2563

windows下建立gcc/g++/gdb/make编译及调试C/C++的IDE环境

使用工具1:Eclipse CDT version可在http://www.eclipse.org/cdt/ 下载到最新的版本CDT 7.0.2这个是一个在Eclipse基础上扩展的C,C++编译调试...
  • iamoyjj
  • iamoyjj
  • 2011年04月02日 21:57
  • 7817

Linux下C/C++编译器GCC/G++使用简介

一、GCC简介 通 常所说的GCC是GNU Compiler Collection的简称,除了编译程序之外,它还含其他相关工具,所以它能把易于人类使用的高级语言编写的源代码构建成计算机能够直接执...
  • zhu2695
  • zhu2695
  • 2016年05月22日 00:41
  • 284

Linux下编译C/C++以及gcc/g++常用参数

编译的步骤gcc and g++分别是c & c++编译器 。gcc/g++在执行编译工作的时候,总共需要4步1.预处理,生成.i的文件[预处理器cpp]。 对应的参数是 -E 2.将预处理后的文...
  • hsd2012
  • hsd2012
  • 2016年04月19日 16:07
  • 1497

Linux下C/C++编译器GCC/G++使用简介

转载自:http://www.ha97.com/2830.html 一、GCC简介 通 常所说的GCC是GNU Compiler Collection的简称,除了编译程序之外,它还...
  • SKY453589103
  • SKY453589103
  • 2015年02月05日 17:32
  • 695

如何在Linux使用Eclipse + CDT开发C/C++程序? (OS) (Linux) (C/C++) (gcc) (g++)

这篇文章转自博客园一博主,感谢博主的分享 Linux是一个以C/C++开发为主的平台,无论是Kernel或是Application,主要都使用C/C++开发。传统在Linux下开发程...
  • DLUTBruceZhang
  • DLUTBruceZhang
  • 2013年04月19日 16:23
  • 4221
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:GCC G++ C C++的区别
举报原因:
原因补充:

(最多只允许输入30个字)