Linux的gcc和g++的区别 | 您所在的位置:网站首页 › g与g的区别 › Linux的gcc和g++的区别 |
Windows中我们常用vs来编译编写好的C和C++代码;vs把编辑器,编译器和调试器等工具都集成在这一款工具中,在Linux下我们能用什么工具来编译所编写好的代码呢,其实Linux下这样的工具有很多,但我们只介绍两款常用的工具,它们分别是gcc和g++. 工具用法介绍gcc和g++的用法都是一样的,在这里我们只介绍gcc: 上图介绍了相关指令和参数以及该条指令所做的对应的事情。 gcc -E filename.c -o filename.i 将c文件转化成C++文件,这个过程也叫做预处理过程gcc -S filename.i -o filename.s 将预处理过程生成的.i后缀的文件转化成汇编文件,里面存储的是相应的汇编代码,这个过程叫做编译。gcc -c filename.s -o filename.o 将汇编文件中的汇编代码翻译成相应的机器语言,这个过程叫做汇编。gcc filename.o -o filename.exe 这条指令是完成链接这个过程的,它通过链接器ld将运行程序的目标文件和库文件链接在一起,生成最后的可执行文件生成可执行文件后,我们就能够调用相应的程序了。 注意:由于g++和gcc的用法相同,所以在这里我们就不直接介绍了 gcc和g++的区别 编译c程序熟悉C++的人应该都知道,C++是C语言的超集,编写C/C++代码的时候,有人用gcc,也有人用g++,我们先来看看gcc和g++是否都能编译C++和C代码: 既然二者对c程序来说都一样的,那为什么两者都存在而不是只存在一个呢,不要着急,下面我们来看看他们分别是如何来编译C++程序的. 首先我们直接编译c文件生成可执行程序: 下面我们来看看它们的具体步骤以及错误原因: 预处理gcc和g++的区别主要是在对cpp文件的编译和链接过程中,因为cpp和c文件中库文件的命名方式不同,那为什么g++既可以编译C又可以编译C++呢,这时因为g++在内部做了处理,默认编译C++程序,但如果遇到C程序,它会直接调用gcc去编译. |
CopyRight 2018-2019 实验室设备网 版权所有 |