C/C++ 中gcc和g++的对比与区别

C/C++ 中gcc和g++的对比与区别

一、区别

1. gcc是GCC中的c编译器

g++是GCC中的c++编译器

2. 对于后缀为.c的文件,gcc当成c文件处理,而g++当成c++处理

对于后缀为.cpp的文件,两者都当成.cpp文件处理

3. 在编译阶段,g++会自动链接STL库,而gcc必须要加一个参数-lstdc++

4. gcc在编译c文件时,可用的预定义宏是比较少的

二、小误区

1.gcc只能用来编译.c文件,g++只能用来编译.cpp文件

答:两者都可以。对于后缀为.c的文件,gcc当成c文件处理,而g++当成c++处理

对于后缀为.cpp的文件,两者都当成.cpp文件处理

2.编译只能用gcc,链接只能用g++

答:不对。gcc和g++都能用在编译阶段,g++用在链接阶段,g++在编译阶段要加上一个参数-lstdc++.

3.gcc不会定义-cplusplus宏,而g++会

答:错误。这个宏只是标志着编译器把代码按c还是c++语法解释。

以上就是C/C++ 中gcc和g++的对比与区别的详解,如有疑问请留言或者到本站社区留言讨论,感谢阅读,希望能帮助到大家,谢谢大家对本站的支持!

(0)

相关推荐

  • C/C++编译器GCC下的常用编译命令总结

    简介 GCC的意思是GUN C Compiler.经过了多年的发展,GCC已经不仅仅能支持C语言了,它现在还支持Ada语言.C++语言.Java语言.Objective C语言.Pascal语言.COBOL语言,以及支持函数式编程和逻辑编程的Mercury语言等等.而GCC也不再单只是GUN C语言编译器的意思了,而是变成了GUN Complier Collection也即是GUN编译器家族的意思了.另一方面,说到GCC对于操作系统平台以及硬件平台支持,概括起来就一句话:无所不在. 编译 示例程

  • C/C++ 中gcc和g++的对比与区别

    C/C++ 中gcc和g++的对比与区别 一.区别 1. gcc是GCC中的c编译器 g++是GCC中的c++编译器 2. 对于后缀为.c的文件,gcc当成c文件处理,而g++当成c++处理 对于后缀为.cpp的文件,两者都当成.cpp文件处理 3. 在编译阶段,g++会自动链接STL库,而gcc必须要加一个参数-lstdc++ 4. gcc在编译c文件时,可用的预定义宏是比较少的 二.小误区 1.gcc只能用来编译.c文件,g++只能用来编译.cpp文件 答:两者都可以.对于后缀为.c的文件,

  • Linux中进程和线程的对比与区别

    Linux中进程和线程的对比与区别 1.概念 进程:正在运行中的程序. 线程:进程中的一条执行路径. 2.区别 (1)通常在一个进程中可以包含若干个线程,它们可以利用进程所拥有的资源.在引入线程的操作系统中,通常都是把进程作为分配资源的基本单位,而把线程作为独立运行和独立调度的基本单位. (2)线程和进程的区别在于,子进程和父进程有不同的代码和数据空间,而多个线程则共享数据空间,每个线程有自己的执行堆栈和程序计数器为其执行上下文.多线程主要是为了节约CPU时间,发挥利用,根据具体情况而定.线程的

  • Java中重载与重写的对比与区别

    Java中重载与重写的区别 首先我们来讲讲:重载(Overloading) (1) 方法重载是让类以统一的方式处理不同类型数据的一种手段.多个同名函数同时存在,具有不同的参数个数/类型. 重载Overloading是一个类中多态性的一种表现. (2) Java的方法重载,就是在类中可以创建多个方法,它们具有相同的名字,但具有不同的参数和不同的定义. 调用方法时通过传递给它们的不同参数个数和参数类型来决定具体使用哪个方法, 这就是多态性. (3) 重载的时候,方法名要一样,但是参数类型和个数不一样

  • OJ中G++和C++的区别

    首先更正一个概念,C++是一门计算机编程语言,G++不是语言,是一款编译器中编译C++程序的命令而已. 那么他们之间的区别是什么? 在提交题目中的语言选项里,G++和C++都代表编译的方式.准确地说,选择C++的话,意味着你将使用的是最标准的编译方式,也就是ANSI C++编译.如果你使用的是G++的话,意味着你将使用GNU项目中最平凡适用人群最多的编译器(其实也就是我们熟悉的Code::Blocks的自带的编译器,Windows环境里一般是MinGW下的gcc,Linux中的gcc和前者基本是

  • JS中使用正则表达式g模式和非g模式的区别

    先给大家说下js正则表达式中的g到底是什么意思 g是global的缩写啊! 就是匹配全部可匹配结果, 如果你不带g,在正则过程中,字符串是从左至右匹配的,如果匹配成功就不再继续向右匹配了,如果你带g,它会重头到尾的把正确匹配的字符串挑选出来 例如: var str = 'aaaaaaaa' var reg1 = /a/ var reg2 = /a/g str.match(reg1) // 结果为:["a", index: 0, input: "aaaaaaaa"]

  • java 中sleep() 和 wait() 的对比

    java 中sleep() 和 wait() 的对比 结合synchronized,会更好的理解sleep()和wait()这两个方法,当然也就知道了他们的区别了.这篇博客就一起学习这两个方法 sleep() sleep() 方法是线程类(Thread)的静态方法,让调用线程进入睡眠状态,让出执行机会给其他线程,等到休眠时间结束后,线程进入就绪状态和其他线程一起竞争cpu的执行时间. 因为sleep() 是static静态的方法,他不能改变对象的机锁,当一个synchronized块中调用了sl

  • PHP中if和or运行效率对比

    本文实例讲述了PHP中if和or运行效率对比.分享给大家供大家参考.具体实现方法如下: 对if和or的运行效率进行了实例说明,感兴趣的朋友可以测试一下,这里我测试了的结果是or 比if效率要高一些哦,具体代码如下: 复制代码 代码如下: <?php  $t1 = microtime(); while($i<=10000){      if(!defined('APP_PATH'));      // 0.011059      // defined('APP_PATH') OR 1;   //

  • java中-jar 与nohup的对比

    java中 -jar 与nohup的对比 --作为Java程序员,经常会遇到这样一个问题,打个jar包,测试或者上线生产,于是乎面临的选择来了,java –jar or nohup? 下面我来扒一扒: 一.    java -jar a.jar & 直接启动jar文件,在当前会话进程中开启一个子进程来运行程序,这个子进程会随着会话进程的结束而结束. 这种情况适合短时间测试用. 二.     nohup java -jar a.jar& 先交代一下名词: hangup (挂断),终端退出时会

  • 关于Python中的向量相加和numpy中的向量相加效率对比

    直接使用Python来实现向量的相加 # -*-coding:utf-8-*- #向量相加 def pythonsum(n): a = range(n) b = range(n) c = [] for i in range(len(a)): a[i] = i**2 b[i] = i**3 c.append(a[i]+b[i]) return a,b,c print pythonsum(4),type(pythonsum(4)) for arg in pythonsum(4): print arg

  • 详解Django中的FBV和CBV对比分析

    在学习Django过程中在views.py进行逻辑处理时接触到了两种视图的书写风格,FBV和CBV FBV 指 function based views,即基于函数的视图 CBV 指 class based views,即基于类的视图 基于类的视图相较于基于函数的视图可以更加便利的实现类的继承封装等.在日常使用的时候,二者的区别主要在于对于request的请求方法的处理方式 FBV 我们通过函数传入的request的method来判断客户端发起的是什么请求,并进行相应的操作,返回相应的数据. d

随机推荐