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 自定义的文件名 #指定生成的可执行文件名称
上述过程总结如下图