Linux:gcc和g++的使用与区别

gcc与g++是什么

gcc:是GCC中的GNU C Compiler(C 编译器)注意:GCC与gcc是两个东西

g++:是GCC中的GNU C++ Compiler(C++编译器)

GCC: GNU Compiler Collection(GNU 编译器集合),它可以编译C、C++、JAV、Fortran、Pascal、Object-C、Ada等语言。

gcc与g++区别

gcc和g++都可以编译c语言和c++

如果是 .c文件,gcc按照c语言的方式去编译,g++会按照c++的方式编译;如果是 .cpp文件,gcc和g++都会按照c++的方式去编译

gcc只会默认连接c库,不会连接c++库,而g++都会连接,gcc编译cpp文件时,必须手动连接c++的库(命令:gcc -o main main.cpp -lstdc++)

gcc/g++的使用

gcc与g++使用方法相同,这里只以gcc为例

1、预编译

gcc -E **.c  #执行命令后生成**.i文件

预编译阶段:处理预编译指令,删除注释,宏替换

2、编译

gcc -S **.i  #执行命令后默认生成一个**.s文件

编译阶段:语法、词法分析,代码优化,汇总符号

3、汇编

gcc -c **.s  #执行命令后生成**.o文件,是可重定位的二进制文件

汇编阶段:翻译成二进制,生成各个段,生成符号表

4、链接

gcc **.o  #默认生成一个a.out文件,a.out是可执行文件

链接阶段:合并各个段,符号解析,符号重定位

上述命令可以加-o指定生成的文件名,o是output的缩写,例如:

gcc **.o -o 自定义的文件名  #指定生成的可执行文件名称

上述过程总结如下图
在这里插入图片描述
在这里插入图片描述

猜你喜欢

转载自blog.csdn.net/huifaguangdemao/article/details/108086587