GCC ,gcc 和g++:

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

gcc是GCC中的GUN C Compiler(C 编译器)

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

由于编译器是可以更换的,所以gcc不仅仅可以编译C文件
所以,更准确的说法是:gcc调用了C compiler,而g++调用了C++ compiler
gcc和g++的主要区别
1. 对于 .c和.cpp文件,gcc分别当做c和cpp文件编译(c和cpp的语法强度是不一样的)
2. 对于 .c和.cpp文件,g++则统一当做cpp文件编译
3. 使用g++编译文件时,g++会自动链接标准库STL,而gcc不会自动链接STL
4. gcc在编译C文件时,可使用的预定义宏是比较少的
5. gcc在编译cpp文件时/g++在编译c文件和cpp文件时(这时候gcc和g++调用的都是cpp文件的编译器),会加入一些额外的宏。
6.在用gcc编译c++文件时,为了能够使用STL,需要加参数 –lstdc++ ,但这并不代表 gcc –lstdc++ 和 g++等价,它们的区别不仅仅是这个。

1、生成可执行文件

-o 指定输出文件名

这个命令会生成一个a.out可执行文件
gcc text.c
这个命令会生成一个file.out可执行文件
gcc test.c -o file.out

-E 预处理

下面这条命令会生成预处理文件 *.i是预处理文件
gcc -E test.c -o test.i

-S 编译文件

下面这条命令会生成汇编语言文件 *.s是汇编语言文件
image.png
gcc -S test.i -o test.s 或 gcc -s test.c -o test.s

-c 将汇编文件转换为目标文件

gcc -c test.s -o test.o

-o 还可以将目标文件输出成可执行文件

下面这条命令会生成可执行文件
gcc ./test.o -o test
执行文件
./test

多文件编译

gcc -o test first.c second.c third.c

image.png
image.png

image.png
image.png
image.png
image.png
image.png
image.png